diff options
author | Max Kellermann <max@duempel.org> | 2013-08-07 19:38:10 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-08-07 19:38:10 +0200 |
commit | 977004c3508a366499ff80ff87ac3a84b4fdf9eb (patch) | |
tree | 8aa2b14135a023454da1ea018d553471a8304a53 /src/event | |
parent | fdc7d13ad16184c20d2bd37063cbb4d9957a4461 (diff) | |
download | mpd-977004c3508a366499ff80ff87ac3a84b4fdf9eb.tar.gz mpd-977004c3508a366499ff80ff87ac3a84b4fdf9eb.tar.xz mpd-977004c3508a366499ff80ff87ac3a84b4fdf9eb.zip |
event/DeferredMonitor: use EventLoop::AddIdle()
Diffstat (limited to 'src/event')
-rw-r--r-- | src/event/DeferredMonitor.cxx | 2 | ||||
-rw-r--r-- | src/event/DeferredMonitor.hxx | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/event/DeferredMonitor.cxx b/src/event/DeferredMonitor.cxx index 10aa0d757..e4242414c 100644 --- a/src/event/DeferredMonitor.cxx +++ b/src/event/DeferredMonitor.cxx @@ -32,7 +32,7 @@ DeferredMonitor::Cancel() void DeferredMonitor::Schedule() { - const unsigned id = g_idle_add(Callback, this); + const unsigned id = loop.AddIdle(Callback, this); const auto old_id = source_id.exchange(id); if (old_id != 0) g_source_remove(old_id); diff --git a/src/event/DeferredMonitor.hxx b/src/event/DeferredMonitor.hxx index 8a08facba..e055b6c9d 100644 --- a/src/event/DeferredMonitor.hxx +++ b/src/event/DeferredMonitor.hxx @@ -26,15 +26,19 @@ #include <atomic> +class EventLoop; + /** * Defer execution of an event into an #EventLoop. */ class DeferredMonitor { + EventLoop &loop; + std::atomic<guint> source_id; public: - DeferredMonitor() - :source_id(0) {} + DeferredMonitor(EventLoop &_loop) + :loop(_loop), source_id(0) {} ~DeferredMonitor() { Cancel(); |