00001 #ifndef N2NC_SYNCMUTEX_H 00002 #define N2NC_SYNCMUTEX_H 00003 00004 #include "nixsys.h" 00005 // #include "condition.h" 00006 00007 namespace n2nc { 00008 namespace sync { 00009 00015 class Mutex{ 00016 public: 00017 Mutex(); 00018 ~Mutex(); 00019 bool lock(); 00020 bool trylock(); 00021 bool unlock(); 00022 // Condition *getNewCondition(); 00023 00024 friend class Condition ; 00025 00026 private: 00027 pthread_t m_lock_from ; 00028 pthread_mutex_t m_mutex ; 00029 Mutex(/*const*/ Mutex& mx); /* FIXME non copyable */ 00030 }; 00031 00032 // pthread_mutex_t Mutex::m_mutex = PTHREAD_MUTEX_INITIALIZER; 00033 00034 } 00035 } 00036 00037 #endif