X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/82a490fdda330eb916eb059929de4be817fe8a87..4aaca0f09db01d8039662a32dc7142bb53d30004:/synchro.h?ds=inline diff --git a/synchro.h b/synchro.h index 7b04f92..e366bee 100644 --- a/synchro.h +++ b/synchro.h @@ -1,7 +1,7 @@ #ifndef SYNCHRO_H #define SYNCHRO_H -#include +#include class mutex_t { public: @@ -9,10 +9,11 @@ public: ~mutex_t() { xbt_mutex_destroy(mutex); } void acquire() { xbt_mutex_acquire(mutex); } void release() { xbt_mutex_release(mutex); } - xbt_mutex_t get() { return mutex; } private: xbt_mutex_t mutex; + + friend class condition_t; }; class condition_t { @@ -21,9 +22,9 @@ public: ~condition_t() { xbt_cond_destroy(cond); } void broadcast() { xbt_cond_broadcast(cond); } void signal() { xbt_cond_signal(cond); } - void wait(mutex_t& mutex) { xbt_cond_wait(cond, mutex.get()); } + void wait(mutex_t& mutex) { xbt_cond_wait(cond, mutex.mutex); } void timedwait(mutex_t& mutex, double delay) { - xbt_cond_timedwait(cond, mutex.get(), delay); + xbt_cond_timedwait(cond, mutex.mutex, delay); } private: