aboutsummaryrefslogtreecommitdiffstats
path: root/src/GlobalEvents.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-08-07event/DeferredMonitor: rename Run() to RunDeferred()Max Kellermann1-2/+2
2013-08-07event/DeferredMonitor: use EventLoop::AddIdle()Max Kellermann1-2/+5
2013-08-07event/DeferredMonitor: new class wrapping g_idle_add()Max Kellermann1-12/+18
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-1/+2
2013-02-27GlobalEvents: use g_idle_add() instead of WakeFD()Max Kellermann1-28/+5
Use the GMainLoop specific function to wake up the main loop. This is simpler and comes with very little overhead.
2013-02-27GlobalEvents: wake up only if the flags were emptyMax Kellermann1-1/+1
Don't bother checking for the parameter mask. This doesn't matter. The only thing that matters is if a wake-up is already pending.
2013-02-27Idle, GlobalEvents: use std::atomic::exchange()Max Kellermann1-1/+1
Less overhead than fetch_and() for what we do.
2013-01-13WakeFD.cxx: use two sockets instead of pipe on Win32Denis Krjuchkov1-1/+1
Pipes aren't really pollable on Windows. GLib emulates polling on pipes using separate reader/writer threads. This adds significant overhead and keeps a strong dependency on GLib. socketpair() function is absent on Windows as well. We implement it here in a loose way.
2013-01-10GlobalEvents: lock-less operation using std::atomicMax Kellermann1-31/+8
Use a bit field instead of a mutex-protected bool array.
2013-01-09GlobalEvents: move code to class WakeFDMax Kellermann1-27/+11
2013-01-09EventPipe: rename to GlobalEventsMax Kellermann1-0/+153