diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-07 18:21:50 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-07 18:21:50 +0000 |
commit | 94827dd755d5d3e93ceb99788ca5f6e0054f85ef (patch) | |
tree | b0404aada850e05805eec2e7f177ae38b59fb436 /libs/pbd/pbd/abstract_ui.h | |
parent | 32e6f03cd40a89d73ded41d96f4e563d70e133ff (diff) |
forward port thread/abstract_ui changes from 2.X to 3.0
git-svn-id: svn://localhost/ardour2/branches/3.0@8751 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/pbd/pbd/abstract_ui.h')
-rw-r--r-- | libs/pbd/pbd/abstract_ui.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/pbd/pbd/abstract_ui.h b/libs/pbd/pbd/abstract_ui.h index 943d994666..0ee61eb7e1 100644 --- a/libs/pbd/pbd/abstract_ui.h +++ b/libs/pbd/pbd/abstract_ui.h @@ -44,13 +44,21 @@ class AbstractUI : public BaseUI void call_slot (EventLoop::InvalidationRecord*, const boost::function<void()>&); Glib::Mutex& slot_invalidation_mutex() { return request_buffer_map_lock; } + Glib::Mutex request_buffer_map_lock; + protected: - typedef RingBufferNPT<RequestObject> RequestBuffer; + struct RequestBuffer : public RingBufferNPT<RequestObject> { + bool dead; + AbstractUI<RequestObject>& ui; + RequestBuffer (uint32_t size, AbstractUI<RequestObject>& uir) + : RingBufferNPT<RequestObject> (size) + , dead (false) + , ui (uir) {} + }; typedef typename RequestBuffer::rw_vector RequestBufferVector; typedef typename std::map<pthread_t,RequestBuffer*>::iterator RequestBufferMapIterator; typedef std::map<pthread_t,RequestBuffer*> RequestBufferMap; - Glib::Mutex request_buffer_map_lock; RequestBufferMap request_buffers; static Glib::StaticPrivate<RequestBuffer> per_thread_request_buffer; |