Add a couple of pthread helper macros
[ardour.git] / libs / pbd / pbd / rcu.h
index 7b053462946f0fcf047b25a8060b74d53b4c5f45..eceec24cd5a3de7b0ab960be50bc5e8d626442dc 100644 (file)
 #define __pbd_rcu_h__
 
 #include "boost/shared_ptr.hpp"
-#include "glibmm/thread.h"
+#include "glibmm/threads.h"
 
 #include <list>
 
+#include "pbd/libpbd_visibility.h"
+
 /** @file Defines a set of classes to implement Read-Copy-Update.  We do not attempt to define RCU here - use google.
 
    The design consists of two parts: an RCUManager and an RCUWriter.
@@ -43,7 +45,7 @@
    and managed object.
 */
 template<class T>
-class RCUManager
+class /*LIBPBD_API*/ RCUManager
 {
   public:
 
@@ -109,7 +111,7 @@ class RCUManager
    means that no actual objects will be deleted incorrectly if this is misused.
 */
 template<class T>
-class SerializedRCUManager : public RCUManager<T>
+class /*LIBPBD_API*/ SerializedRCUManager : public RCUManager<T>
 {
 public:
 
@@ -187,12 +189,12 @@ public:
        }
 
        void flush () {
-               Glib::Mutex::Lock lm (m_lock);
+               Glib::Threads::Mutex::Lock lm (m_lock);
                m_dead_wood.clear ();
        }
 
 private:
-       Glib::Mutex                      m_lock;
+       Glib::Threads::Mutex                      m_lock;
        boost::shared_ptr<T>*            current_write_old;
        std::list<boost::shared_ptr<T> > m_dead_wood;
 };
@@ -212,7 +214,7 @@ private:
 
 */
 template<class T>
-class RCUWriter
+class /*LIBPBD_API*/ RCUWriter
 {
 public: