mutex 'er up
authorRobin Gareus <robin@gareus.org>
Tue, 13 Dec 2016 22:46:55 +0000 (23:46 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 13 Dec 2016 22:47:07 +0000 (23:47 +0100)
commitfa07233a17036bc1cab69d5854b5c768ff762f5b
tree4048a4a6ca22845a9c80b0ecaf94a453b08b88da
parent176625d9e0dbe53c9f5628d172ee6f5488be8202
mutex 'er up

Some overzealous locking to track down RequestObject related crashes.

bc0fa4d689a4 wrongly locked the current event loop's
request_invalidation_lock instead of the invalidation's list lock.

Also Abstract UI is able to delete requests concurrently with with
EventLoop invalidation.
e.g. PortManager::PortRegisteredOrUnregistered  and GlobalPortMatrixWindow
so the lock needs to be exposed.

If this solves various issues, mutexes should to be consolidated
(request_buffer_map_lock + request_invalidation_lock) and be chosen
such that there is as little contention as possible.
libs/pbd/event_loop.cc
libs/pbd/pbd/abstract_ui.cc
libs/pbd/pbd/abstract_ui.h
libs/pbd/pbd/event_loop.h
session_utils/common.cc
tools/luadevel/luasession.cc