CNotifier: Provide a way to unregister a notifier temporarily

This commit is contained in:
Robin Burchell 2019-07-16 15:02:22 +02:00 committed by Andreas Kling
parent 3dac1f8ac5
commit 7bf420d83d
2 changed files with 12 additions and 2 deletions

View file

@ -6,10 +6,18 @@ CNotifier::CNotifier(int fd, unsigned event_mask)
: m_fd(fd)
, m_event_mask(event_mask)
{
CEventLoop::register_notifier({}, *this);
set_enabled(true);
}
CNotifier::~CNotifier()
{
CEventLoop::unregister_notifier({}, *this);
set_enabled(false);
}
void CNotifier::set_enabled(bool enabled)
{
if (enabled)
CEventLoop::register_notifier({}, *this);
else
CEventLoop::unregister_notifier({}, *this);
}

View file

@ -13,6 +13,8 @@ public:
CNotifier(int fd, unsigned event_mask);
~CNotifier();
void set_enabled(bool);
Function<void()> on_ready_to_read;
Function<void()> on_ready_to_write;