Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This is the right condition that prevents deadlocks! :)
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 21 May 2008 09:32:47 +0000 (09:32 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 21 May 2008 09:32:47 +0000 (09:32 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5477 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/gras/Msg/gras_msg_exchange.c

index 0cafee7..ba36513 100644 (file)
@@ -270,7 +270,6 @@ gras_msg_handleall(double period) {
 
   do {
     now=gras_os_time();
 
   do {
     now=gras_os_time();
-          
     TRY{
       if (period - now + begin > 0)
        gras_msg_handle(period - now + begin);
     TRY{
       if (period - now + begin > 0)
        gras_msg_handle(period - now + begin);
@@ -280,7 +279,7 @@ gras_msg_handleall(double period) {
       xbt_ex_free(e);
     }
      /* Epsilon to avoid numerical stability issues were the waited interval is so small that the global clock cannot notice the increment */
       xbt_ex_free(e);
     }
      /* Epsilon to avoid numerical stability issues were the waited interval is so small that the global clock cannot notice the increment */
-  } while (now - begin < period - 0.000001);
+  } while (period - now + begin > 0);
 }
 
 /** @brief Handle an incomming message or timer (or wait up to \a timeOut seconds)
 }
 
 /** @brief Handle an incomming message or timer (or wait up to \a timeOut seconds)