Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2014-02-05 | event/Loop: remove the dummy constructor argument | Max Kellermann | 1 | -3/+1 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2014-01-09 | event/Loop: allow scheduling events before Run() | Max Kellermann | 1 | -0/+15 | |
Add the debug-only flag "virgin" which gets checked by assert() calls. Fixes assertion failures when using zeroconf/avahi. | |||||
2014-01-05 | event/Loop: try to avoid the WakeFD when adding DeferredMonitor | Max Kellermann | 1 | -0/+8 | |
Add a flag that indicates whether the EventLoop is currently "busy". As long as that flag is set, it does not need to be woken up - we can simply add the DeferredMonitor to the list, and it will be caught by EventLoop very soon. This eliminates nearly all of the DeferredMonitor overhead when compared to IdleMonitor, rendering IdleMonitor mostly obsolete. | |||||
2014-01-05 | event/Loop: add attribute "again" | Max Kellermann | 1 | -0/+6 | |
Improved support for added events. | |||||
2014-01-05 | event/Loop: add thread-safety assertions | Max Kellermann | 1 | -0/+13 | |
2014-01-05 | event/Loop: move code to HandleDeferred() | Max Kellermann | 1 | -0/+7 | |
2014-01-04 | event/Loop: remove the GLib implementation | Max Kellermann | 1 | -61/+1 | |
Now that the remaining known bugs in poll() implementation are fixed, we can go on without the GLib implementation. | |||||
2014-01-04 | event/Loop: remove unused method AddCall() | Max Kellermann | 1 | -9/+0 | |
2014-01-04 | event/DeferredMonitor: make fully thread-safe | Max Kellermann | 1 | -0/+17 | |
Instead of creating a new eventfd for each DeferredMonitor instance, reuse EventLoop's eventfd, and add a std::list to EventLoop that manages the list of pending DeferredMonitors. This std::list is protected by the same mutex as the "calls" list. The bottom line is: reduced overhead because the per-instance eventfd was eliminated, slightly added overhead due to Mutex usage (but negligible), and we're thread-safe now. This subsystem is now good enough to replace EventLoop::AddCall(). | |||||
2013-12-31 | event/Loop: document that AddCall() is thread-safe | Max Kellermann | 1 | -0/+5 | |
2013-11-28 | event: introduce generic API for internal event loop | Denis Krjuchkov | 1 | -18/+6 | |
2013-11-27 | Add infrastructure for using multiple event loops | Denis Krjuchkov | 1 | -9/+24 | |
This change adds two configuration options: --with-eventloop=[glib|internal|auto] --with-pollmethod=[epoll|auto] First allows switching between GLib event loop and internal one. Second chooses backend to use for internal event loop. Conditional compilation symbols are changed accordingly. Additional helper macro MPD_OPTIONAL_FUNC_NODEF is added as well. | |||||
2013-11-24 | event: add API documentation | Max Kellermann | 1 | -0/+21 | |
2013-11-06 | event/SocketMonitor: add method Abandon() | Max Kellermann | 1 | -0/+7 | |
2013-10-15 | gcc.h: rename to Compiler.h | Max Kellermann | 1 | -1/+1 | |
2013-08-10 | EventLoop: new implementation using epoll | Max Kellermann | 1 | -11/+112 | |
Implement an event loop without GLib. | |||||
2013-08-10 | thread/Id: new class replacing GThread pointers | Max Kellermann | 1 | -5/+6 | |
Remove a GLib dependencies from class EventLoop and DatabaseLock. | |||||
2013-08-08 | EventLoop: add methodd IsInside() | Max Kellermann | 1 | -2/+21 | |
Track which thread runs the EventLoop and provide a check whether we're currently inside. | |||||
2013-08-08 | EventLoop: un-inline Run() and others | Max Kellermann | 1 | -22/+4 | |
Prepare for adding more code. | |||||
2013-01-30 | event/Loop: add method WakeUp() | Max Kellermann | 1 | -0/+4 | |
2013-01-14 | event/TimeoutMonitor: wrapper for g_timeout_source_new() | Max Kellermann | 1 | -10/+8 | |
2013-01-14 | Main, IOThread: move GMainLoop setup code to class EventLoop | Max Kellermann | 1 | -0/+86 | |