diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-11 23:30:48 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-11 23:30:48 +0000 |
commit | 401c7091c805b24b926acb2b393070d3a32628a6 (patch) | |
tree | 240fd4ed7350e6e6fe75747cb904901154cf259d /libs/ardour/ardour/session_event.h | |
parent | 64dc5427e4f5339a16a018692dd94f476c53cae9 (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.h | 13 |
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; |