summaryrefslogtreecommitdiff
path: root/libs/pbd/event_loop.cc
AgeCommit message (Collapse)Author
2016-02-14fix rare livelock in std::map thread_buffer_requestsRobin Gareus
During initial session load it's possible that two threads call PBD::notify_event_loops_about_thread_creation() simultaneously (in particular the process threads). This can lead to an endless loop in stl_tree.h when assigning thread_buffer_requests[key] Now we only have WriteLocks.. unless some better solution comes up a Mutex will do.
2016-01-14use correct type of lock when removing a thread request bufferPaul Davis
2016-01-14fully clean up request buffers when a thread diesPaul Davis
2016-01-14manually revert 4b3043cc and 141e6fb8181; add detailed explanatory commentPaul Davis
2016-01-13use a unique key to store per-thread request buffersPaul Davis
2016-01-13yet more event loop debug tracingPaul Davis
2015-12-28redesign cross-thread registration/signalling systemPaul Davis
This new design will work even when threads that need to receive messages from RT threads are created *after* the RT threads. The existing design would fail because the RT thread(s) would never be known the later created threads, and so signals emitted by the RT thread and causing call_slot() in the receiver would end up being enqueued using a lock-protected list. The new design ensures that communication always uses a lock-free FIFO instead
2015-12-12move BaseUI::_name into EventLoop; rename access method in EventLoop as ↵Paul Davis
event_loop_name() to clarify usage
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2013-01-16add copyright commentsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13857 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-23Remove unnecessary header includesTim Mayberry
git-svn-id: svn://localhost/ardour2/branches/3.0@12827 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24eventloop and abstractui debugging, lots more commenting on ↵Paul Davis
abstractui/eventloop implementation; minor tweaks elsewhere git-svn-id: svn://localhost/ardour2/branches/3.0@12076 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-19allow invalidation-of-UI-request-by-object-deletion to work more often by ↵Paul Davis
setting the event loop record at connect time, not execution time git-svn-id: svn://localhost/ardour2/branches/3.0@9379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-29Fix build.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-29Remove debug code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8374 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-03Allow cross-thread request invalidators to cope with multiple requestsCarl Hetherington
being logged before they are handled, and to invalidate them all rather than just the last one. Fixes shutdown problems when the PortMatrix has been opened during the session, during which PortRegisteredOrUnregistered is emitted quite heavily. git-svn-id: svn://localhost/ardour2/branches/3.0@6852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-02Couple of comments.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@6851 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-30handle deletion of UI objects between the time that a callback is queued ↵Paul Davis
with the UI event loop and the execution of the callback (intrusive, big) git-svn-id: svn://localhost/ardour2/branches/3.0@6807 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-21fully implement and deploy explicit x-thread signal connection syntax ↵Paul Davis
(testing comes next) git-svn-id: svn://localhost/ardour2/branches/3.0@6379 d708f5d6-7413-0410-9779-e7cbd77b26cf