Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Keep execution alive after timeout in sg_exec_wait_for.
[simgrid.git] / examples / c / energy-exec-ptask / energy-exec-ptask.c
index 984db05..2356cc6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -8,9 +8,9 @@
 #include "simgrid/exec.h"
 #include "simgrid/host.h"
 #include "simgrid/plugins/energy.h"
-#include "xbt/asserts.h"
 #include "xbt/config.h"
 #include "xbt/log.h"
+#include "xbt/sysdep.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(energy_exec_ptask, "Messages specific for this example");
 
@@ -47,7 +47,8 @@ static void runner(int argc, char* argv[])
       communication_amounts[i * host_count + j] = 1e7; // 10 MB
 
   sg_exec_t exec = sg_actor_parallel_exec_init(host_count, hosts, computation_amounts, communication_amounts);
-  sg_exec_wait_for(exec, 1 /* timeout (in seconds)*/);
+  if (sg_exec_wait_for(exec, 1 /* timeout (in seconds)*/) == SG_ERROR_TIMEOUT)
+    sg_exec_cancel(exec);
   xbt_free(communication_amounts);
   xbt_free(computation_amounts);