aboutsummaryrefslogtreecommitdiffstats
path: root/src/thread/Thread.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-04 14:56:02 +0100
committerMax Kellermann <max@duempel.org>2014-01-04 15:58:59 +0100
commita357d84dce668d126fe984680e5d17f6d41b2fe6 (patch)
treea85f021ed1d7f999592f5fb3878a4b723755d1cd /src/thread/Thread.hxx
parent48c96bbaea542491b930f244e22d17db5a281434 (diff)
downloadmpd-a357d84dce668d126fe984680e5d17f6d41b2fe6.tar.gz
mpd-a357d84dce668d126fe984680e5d17f6d41b2fe6.tar.xz
mpd-a357d84dce668d126fe984680e5d17f6d41b2fe6.zip
event/DeferredMonitor: make fully thread-safe
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().
Diffstat (limited to 'src/thread/Thread.hxx')
0 files changed, 0 insertions, 0 deletions