]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/interprocess/sync/detail/locks.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / interprocess / sync / detail / locks.hpp
index 88d9c0cb48772f617857be3f4bb3d3e523a44528..9ad47d26d97b8fa4f6ed72562b8c095c6d373482 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
+#include <boost/interprocess/detail/posix_time_types_wrk.hpp>
 
 namespace boost {
 namespace interprocess {
@@ -35,18 +36,18 @@ class internal_mutex_lock
    typedef typename Lock::mutex_type::internal_mutex_type  mutex_type;
 
 
-   internal_mutex_lock(Lock &l)
+   BOOST_INTERPROCESS_FORCEINLINE internal_mutex_lock(Lock &l)
       : l_(l)
    {}
 
-   mutex_type* mutex() const
+   BOOST_INTERPROCESS_FORCEINLINE mutex_type* mutex() const
    {  return l_ ? &l_.mutex()->internal_mutex() : 0;  }
 
-   void lock()    { l_.lock(); }
+   BOOST_INTERPROCESS_FORCEINLINE void lock()    { l_.lock(); }
 
-   void unlock()  { l_.unlock(); }
+   BOOST_INTERPROCESS_FORCEINLINE void unlock()  { l_.unlock(); }
 
-   operator unspecified_bool_type() const
+   BOOST_INTERPROCESS_FORCEINLINE operator unspecified_bool_type() const
    {  return l_ ? &internal_mutex_lock::lock : 0;  }
 
    private:
@@ -58,11 +59,13 @@ class lock_inverter
 {
    Lock &l_;
    public:
-   lock_inverter(Lock &l)
+   BOOST_INTERPROCESS_FORCEINLINE lock_inverter(Lock &l)
       :  l_(l)
    {}
-   void lock()    {   l_.unlock();   }
-   void unlock()  {   l_.lock();     }
+
+   BOOST_INTERPROCESS_FORCEINLINE void lock()    {   l_.unlock();   }
+
+   BOOST_INTERPROCESS_FORCEINLINE void unlock()  {   l_.lock();     }
 };
 
 template <class Lock>
@@ -71,12 +74,15 @@ class lock_to_sharable
    Lock &l_;
 
    public:
-   explicit lock_to_sharable(Lock &l)
+   BOOST_INTERPROCESS_FORCEINLINE explicit lock_to_sharable(Lock &l)
       :  l_(l)
    {}
-   void lock()    {  l_.lock_sharable();     }
-   bool try_lock(){  return l_.try_lock_sharable(); }
-   void unlock()  {  l_.unlock_sharable();   }
+
+   BOOST_INTERPROCESS_FORCEINLINE void lock()    {  l_.lock_sharable();     }
+
+   BOOST_INTERPROCESS_FORCEINLINE bool try_lock(){  return l_.try_lock_sharable(); }
+
+   BOOST_INTERPROCESS_FORCEINLINE void unlock()  {  l_.unlock_sharable();   }
 };
 
 template <class Lock>
@@ -85,11 +91,15 @@ class lock_to_wait
    Lock &l_;
 
    public:
-   explicit lock_to_wait(Lock &l)
+   BOOST_INTERPROCESS_FORCEINLINE explicit lock_to_wait(Lock &l)
       :  l_(l)
    {}
-   void lock()    {  l_.wait();     }
-   bool try_lock(){  return l_.try_wait(); }
+   BOOST_INTERPROCESS_FORCEINLINE void lock()     {  l_.wait();     }
+
+   BOOST_INTERPROCESS_FORCEINLINE bool try_lock() {  return l_.try_wait(); }
+
+   BOOST_INTERPROCESS_FORCEINLINE bool timed_lock(const boost::posix_time::ptime &abs_time)
+      {  return l_.timed_wait(abs_time);   }
 };
 
 }  //namespace ipcdetail