+#ifndef SYNCHRO_H
+#define SYNCHRO_H
+
+#include <xbt/synchro.h>
+
+class mutex_t {
+public:
+ mutex_t() { mutex = xbt_mutex_init(); }
+ ~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;
+};
+
+class condition_t {
+public:
+ condition_t() { cond = xbt_cond_init(); }
+ ~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 timedwait(mutex_t& mutex, double delay) {
+ xbt_cond_timedwait(cond, mutex.get(), delay);
+ }
+
+private:
+ xbt_cond_t cond;
+};
+
+#endif // !SYNCHRO_H
+
+// Local variables:
+// mode: c++
+// End: