00001 #ifndef GALOIS_C__11_COMPAT_MUTEX_H 00002 #define GALOIS_C__11_COMPAT_MUTEX_H 00003 00004 namespace std { 00005 template<typename _Mutex> 00006 class lock_guard { 00007 public: 00008 typedef _Mutex mutex_type; 00009 explicit lock_guard(mutex_type& __m): _M_device(__m) { _M_device.lock(); } 00010 ~lock_guard() { _M_device.unlock(); } 00011 00012 private: 00013 lock_guard(const lock_guard&); 00014 lock_guard& operator=(const lock_guard&); 00015 00016 mutex_type& _M_device; 00017 }; 00018 } 00019 #endif