1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 18:25:08 +00:00

LibCore: Add Notifier::close

If a file descriptor is being closed, we need to permanently disable
any Notifier and remove it from the event loop. This method removes
the notifier and disables it so that the EventLoop does not use a
invalid file descriptor.
This commit is contained in:
Tom 2020-09-16 09:42:59 -06:00 committed by Andreas Kling
parent 0579a2db34
commit d67553e128
2 changed files with 12 additions and 0 deletions

View file

@ -46,12 +46,22 @@ Notifier::~Notifier()
void Notifier::set_enabled(bool enabled)
{
if (m_fd < 0)
return;
if (enabled)
Core::EventLoop::register_notifier({}, *this);
else
Core::EventLoop::unregister_notifier({}, *this);
}
void Notifier::close()
{
if (m_fd < 0)
return;
set_enabled(false);
m_fd = -1;
}
void Notifier::event(Core::Event& event)
{
if (event.type() == Core::Event::NotifierRead && on_ready_to_read) {