// file : odb/details/lock.hxx // copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_LOCK_HXX #define ODB_DETAILS_LOCK_HXX #include #include #ifdef ODB_THREADS_CXX11 # include namespace odb { namespace details { using lock = std::unique_lock; } } #else namespace odb { namespace details { class lock { public: lock (mutex& m) : mutex_ (&m) { mutex_->lock (); } ~lock () { if (mutex_ != 0) mutex_->unlock (); } void unlock () { if (mutex_ != 0) { mutex_->unlock (); mutex_ = 0; } } private: mutex* mutex_; }; } } #endif #include #endif // ODB_DETAILS_LOCK_HXX