#include <simgrid_config.h>
-#if !defined(SIMGRID_VERSION) || SIMGRID_VERSION < 31200UL // == SG < 3.12 == //
-# error "Unsupported SimGrid version. Need version >= 3.12"
+#if !defined(SIMGRID_VERSION) || SIMGRID_VERSION < 31400UL // == SG < 3.14 == //
+# error "Unsupported SimGrid version. Need version >= 3.14"
#endif // =================================================================== //
#endif // !SIMGRID_FEATURES_H
#ifndef SYNCHRO_H
#define SYNCHRO_H
-#include <xbt/synchro_core.h>
+#include <xbt/ex.hpp>
+#include <xbt/synchro.h>
class mutex_t {
public:
void signal() { xbt_cond_signal(cond); }
void wait(mutex_t& mutex) { xbt_cond_wait(cond, mutex.mutex); }
bool timedwait(mutex_t& mutex, double delay) {
- xbt_ex_t e;
- TRY {
+ try {
xbt_cond_timedwait(cond, mutex.mutex, delay);
}
- CATCH (e) {
+ catch (const xbt_ex& e) {
if (e.category != timeout_error)
- RETHROW;
- xbt_ex_free(e);
+ throw;
mutex.acquire();
return false; // got a timeout
}