brintos

brintos / llvm-project-archived public Read only

0
0
Text · 696 B · a0030a2 Raw
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