diff options
author | Robin Gareus <robin@gareus.org> | 2017-06-03 12:31:59 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-06-03 13:55:08 +0200 |
commit | d662e6e0bfc4f541be2424cfe4d42b32b20c898c (patch) | |
tree | f7702a1d7f86af0bfcf2ee1224a1c2b053d2e501 /libs | |
parent | c2cb60ea03d057bdd36d20c5aa47efaacdf410e9 (diff) |
amend 67f9f6fd: no recursive ReaderLock
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/slavable_automation_control.h | 8 | ||||
-rw-r--r-- | libs/ardour/slavable_automation_control.cc | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/libs/ardour/ardour/slavable_automation_control.h b/libs/ardour/ardour/slavable_automation_control.h index 8827b29f6b..6467dcd6de 100644 --- a/libs/ardour/ardour/slavable_automation_control.h +++ b/libs/ardour/ardour/slavable_automation_control.h @@ -64,7 +64,13 @@ class LIBARDOUR_API SlavableAutomationControl : public AutomationControl int set_state (XMLNode const&, int); XMLNode& get_state(); - bool find_next_event (double now, double end, Evoral::ControlEvent& next_event) const; + bool find_next_event (double n, double e, Evoral::ControlEvent& ev) const + { + Glib::Threads::RWLock::ReaderLock lm (master_lock); + return find_next_event_locked (n, e, ev); + } + + bool find_next_event_locked (double now, double end, Evoral::ControlEvent& next_event) const; protected: diff --git a/libs/ardour/slavable_automation_control.cc b/libs/ardour/slavable_automation_control.cc index 51b2d30004..6df2dd2720 100644 --- a/libs/ardour/slavable_automation_control.cc +++ b/libs/ardour/slavable_automation_control.cc @@ -345,9 +345,8 @@ SlavableAutomationControl::clear_masters () } bool -SlavableAutomationControl::find_next_event (double now, double end, Evoral::ControlEvent& next_event) const +SlavableAutomationControl::find_next_event_locked (double now, double end, Evoral::ControlEvent& next_event) const { - Glib::Threads::RWLock::ReaderLock lm (master_lock); if (_masters.empty()) { return false; } @@ -363,7 +362,7 @@ SlavableAutomationControl::find_next_event (double now, double end, Evoral::Cont boost::shared_ptr<SlavableAutomationControl> sc = boost::dynamic_pointer_cast<SlavableAutomationControl>(ac); - if (sc && sc->find_next_event (now, end, next_event)) { + if (sc && sc->find_next_event_locked (now, end, next_event)) { rv = true; } |