 +        friend class d2::lockable_mixin<mutex>;
      public:
          BOOST_THREAD_NO_COPYABLE(mutex)
-
+ 
 @@ -59,7 +62,8 @@
              } while (ret == EINTR);
          }
-
+ 
 -        void lock()
 +    private:
 +        void lock_impl()

@@ -224,14 +228,14 @@
             is_locked=true;
         }

-        void unlock()
+        void unlock_impl()
         {

         {
           using namespace chrono;
           typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
-          return try_lock_until(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+          return try_lock_until_impl(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
         }
-        bool try_lock_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+        bool try_lock_until_impl(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
