diff --git a/libs/pbd/pbd/spinlock.h b/libs/pbd/pbd/spinlock.h index 69b76ce820..6fafeb0f78 100644 --- a/libs/pbd/pbd/spinlock.h +++ b/libs/pbd/pbd/spinlock.h @@ -32,17 +32,10 @@ namespace PBD { * * initialize with BOOST_DETAIL_SPINLOCK_INIT */ -#ifdef COMPILER_MSVC -private: - static boost::detail::spinlock sl_init = BOOST_DETAIL_SPINLOCK_INIT; -# define SPINLOCK_INIT sl_init -#else -# define SPINLOCK_INIT BOOST_DETAIL_SPINLOCK_INIT -#endif struct spinlock_t { public: - spinlock_t () : l (SPINLOCK_INIT) {}; + spinlock_t (); void lock () { l.lock (); } void unlock () { l.unlock (); } bool try_lock () { return l.try_lock (); } @@ -50,8 +43,6 @@ private: boost::detail::spinlock l; }; -#undef SPINLOCK_INIT - /* RAII wrapper */ class LIBPBD_API SpinLock { diff --git a/libs/pbd/spinlock.cc b/libs/pbd/spinlock.cc index 5892c2dd9c..4dfc8132ff 100644 --- a/libs/pbd/spinlock.cc +++ b/libs/pbd/spinlock.cc @@ -25,6 +25,11 @@ using namespace PBD; +spinlock_t::spinlock_t () +{ + l = BOOST_DETAIL_SPINLOCK_INIT; +} + SpinLock::SpinLock (spinlock_t& lock) : _lock (lock) {