Merged with trunk (painfully)
[ardour.git] / libs / ardour / ardour / route.h
index 8a707eb902223099bf0a8080bda03e8325356ef6..5699d9ef14a89bca6ed16d6052c4ca219a0f96c7 100644 (file)
 #include <map>
 #include <string>
 
-#include <pthread.h>
-
-#include <pbd/atomic.h>
 #include <pbd/fastlog.h>
-#include <pbd/lockmonitor.h>
+#include <glibmm/thread.h>
 #include <pbd/xml++.h>
 #include <pbd/undo.h>
 #include <midi++/controllable.h>
@@ -142,14 +139,14 @@ class Route : public IO
        void flush_redirects ();
 
        template<class T> void foreach_redirect (T *obj, void (T::*func)(Redirect *)) {
-               RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__);
+               Glib::RWLock::ReaderLock lm (redirect_lock);
                for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) {
                        (obj->*func) (*i);
                }
        }
 
        Redirect *nth_redirect (uint32_t n) {
-               RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__);
+               Glib::RWLock::ReaderLock lm (redirect_lock);
                RedirectList::iterator i;
                for (i = _redirects.begin(); i != _redirects.end() && n; ++i, --n);
                if (i == _redirects.end()) {
@@ -294,9 +291,9 @@ class Route : public IO
        jack_nframes_t           _roll_delay;
        jack_nframes_t           _own_latency;
        RedirectList             _redirects;
-       PBD::NonBlockingRWLock      redirect_lock;
+       Glib::RWLock      redirect_lock;
        IO                      *_control_outs;
-       PBD::NonBlockingLock      control_outs_lock;
+       Glib::Mutex      control_outs_lock;
        RouteGroup              *_edit_group;
        RouteGroup              *_mix_group;
        std::string              _comment;