Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
do not create execution action of size 0 since it seems to lock surf down
[simgrid.git] / src / gras / Virtu / sg_emul.c
index 785cede..cf38124 100644 (file)
@@ -24,22 +24,24 @@ void gras_cpu_burn(double flops) {
   smx_cond_t cond;
   smx_mutex_t mutex;
 
-  cond = SIMIX_cond_init();
-  mutex = SIMIX_mutex_init();
+  if (flops>0) {
+    cond = SIMIX_cond_init();
+    mutex = SIMIX_mutex_init();
 
-  SIMIX_mutex_lock(mutex);
-  act =
-      SIMIX_action_execute(SIMIX_host_self(), "task", flops);
+    SIMIX_mutex_lock(mutex);
+    act =
+        SIMIX_action_execute(SIMIX_host_self(), "task", flops);
 
-  SIMIX_register_action_to_condition(act, cond);
-  SIMIX_cond_wait(cond, mutex);
-  SIMIX_unregister_action_to_condition(act, cond);
+    SIMIX_register_action_to_condition(act, cond);
+    SIMIX_cond_wait(cond, mutex);
+    SIMIX_unregister_action_to_condition(act, cond);
 
-  SIMIX_action_destroy(act);
-  SIMIX_mutex_unlock(mutex);
+    SIMIX_action_destroy(act);
+    SIMIX_mutex_unlock(mutex);
 
-  SIMIX_cond_destroy(cond);
-  SIMIX_mutex_destroy(mutex);
+    SIMIX_cond_destroy(cond);
+    SIMIX_mutex_destroy(mutex);
+  }
 }
 /*** Timing macros ***/
 static xbt_os_timer_t timer;