]> AND Private Git Repository - loba.git/blobdiff - synchro.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
xbt_cond_timedwait has changed and doesn't throw exception anymore.
[loba.git] / synchro.h
index 45e0901cac01d9343c48192ba1799fa15ac89c63..bd49783ccdc943f2710ed76f9e4e60787fb0b5cf 100644 (file)
--- a/synchro.h
+++ b/synchro.h
@@ -1,7 +1,7 @@
 #ifndef SYNCHRO_H
 #define SYNCHRO_H
 
 #ifndef SYNCHRO_H
 #define SYNCHRO_H
 
-#include <xbt/synchro_core.h>
+#include <xbt/synchro.h>
 
 class mutex_t {
 public:
 
 class mutex_t {
 public:
@@ -24,14 +24,8 @@ 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) {
     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 {
-            xbt_cond_timedwait(cond, mutex.mutex, delay);
-        }
-        CATCH (e) {
-            if (e.category != timeout_error)
-                RETHROW;
-            xbt_ex_free(e);
+        if (xbt_cond_timedwait(cond, mutex.mutex, delay)) {
+            mutex.acquire();
             return false;       // got a timeout
         }
         return true;
             return false;       // got a timeout
         }
         return true;