34 lines · plain
1#ifndef _MUTEX_2#define _MUTEX_3 4namespace std {5 6struct mutex {7 void lock() {}8 void unlock() {}9};10 11template<class Lockable1, class Lockable2, class... LockableN >12void lock(Lockable1& lock1, Lockable2& lock2, LockableN&... lockn );13 14struct adopt_lock_t { };15std::adopt_lock_t adopt_lock {};16 17template <typename Mutex>18struct lock_guard {19 lock_guard(Mutex &m) { }20 lock_guard(Mutex &m, std::adopt_lock_t t) {}21 lock_guard(const lock_guard&) = delete;22};23 24template <typename... MutexTypes>25struct scoped_lock {26 scoped_lock(MutexTypes&... m) {}27 scoped_lock(std::adopt_lock_t t, MutexTypes&... m) {}28 scoped_lock(const scoped_lock&) = delete;29};30 31} // namespace std32 33#endif // _MUTEX_34