summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session_event.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-11 23:30:48 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-11 23:30:48 +0000
commit401c7091c805b24b926acb2b393070d3a32628a6 (patch)
tree240fd4ed7350e6e6fe75747cb904901154cf259d /libs/ardour/ardour/session_event.h
parent64dc5427e4f5339a16a018692dd94f476c53cae9 (diff)
switch to use boost::function for UI::call_slot operations, to avoid a serious thread safety issue with libsigc++
git-svn-id: svn://localhost/ardour2/branches/3.0@6355 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/session_event.h')
-rw-r--r--libs/ardour/ardour/session_event.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h
index bb5b5f49ce..1a3303087d 100644
--- a/libs/ardour/ardour/session_event.h
+++ b/libs/ardour/ardour/session_event.h
@@ -2,6 +2,7 @@
#define __ardour_session_event_h__
#include <list>
+#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
#include <sigc++/signal.h>
@@ -66,10 +67,14 @@ struct SessionEvent {
bool second_yes_or_no;
};
- boost::shared_ptr<RouteList> routes;
- sigc::slot<void> rt_slot; /* what to call in RT context */
- sigc::slot<void,SessionEvent*> rt_return; /* called after rt_slot, with this event as an argument */
- PBD::UICallback* ui;
+ /* 4 members to handle a multi-group event handled in RT context */
+
+ typedef boost::function<void (SessionEvent*)> RTeventCallback;
+
+ boost::shared_ptr<RouteList> routes; /* apply to */
+ boost::function<void (void)> rt_slot; /* what to call in RT context */
+ RTeventCallback rt_return; /* called after rt_slot, with this event as an argument */
+ PBD::UICallback* ui;
std::list<AudioRange> audio_range;
std::list<MusicRange> music_range;