Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Hack so that SD_simulate(2.0) stops after 2 seconds...
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 30 Jul 2007 11:38:51 +0000 (11:38 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 30 Jul 2007 11:38:51 +0000 (11:38 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3906 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/simdag/sd_global.c

index 6729f0d..d1a3ae7 100644 (file)
@@ -175,6 +175,10 @@ SD_task_t* SD_simulate(double how_long)
     first_time = 0;
   }
 
+  if(how_long>0) {
+    surf_timer_resource->extension_public->set(surf_get_clock()+how_long,
+                                              NULL,NULL);
+  }
   sd_global->watch_point_reached = 0;
 
   /* explore the ready tasks */
@@ -197,6 +201,10 @@ SD_task_t* SD_simulate(double how_long)
   while (elapsed_time >= 0.0 &&
         (how_long < 0.0 || total_time < how_long) &&
         !sd_global->watch_point_reached) {
+    /* dumb variables */
+    void *fun = NULL;
+    void *arg = NULL;
+
 
     DEBUG1("Total time: %f", total_time);
 
@@ -269,6 +277,9 @@ SD_task_t* SD_simulate(double how_long)
        changed_tasks[changed_task_number] = NULL;
       }
     }
+
+    while (surf_timer_resource->extension_public->get(&fun,(void*)&arg)) {
+    }
   }
 
   /* we must reset every task->state_changed */