diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-14 10:53:32 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-14 10:53:32 -0500 |
commit | 35807a19293564afb742e99371d7e07b26cc8619 (patch) | |
tree | 7798aa486f8fc413b2ac32d7b2275e046eec4418 /libs/pbd/event_loop.cc | |
parent | 077c65cc2a2a058505256ea7d4c58508f3a30593 (diff) |
fully clean up request buffers when a thread dies
Diffstat (limited to 'libs/pbd/event_loop.cc')
-rw-r--r-- | libs/pbd/event_loop.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/pbd/event_loop.cc b/libs/pbd/event_loop.cc index e6f5414d11..424636feda 100644 --- a/libs/pbd/event_loop.cc +++ b/libs/pbd/event_loop.cc @@ -219,3 +219,15 @@ EventLoop::pre_register (const string& emitting_thread_name, uint32_t num_reques } } +void +EventLoop::remove_request_buffer_from_map (void* ptr) +{ + Glib::Threads::RWLock::ReaderLock lm (thread_buffer_requests_lock); + + for (ThreadRequestBufferList::iterator x = thread_buffer_requests.begin(); x != thread_buffer_requests.end(); ++x) { + if (x->second.request_buffer == ptr) { + thread_buffer_requests.erase (x); + break; + } + } +} |