From: Frederic Suter Date: Fri, 6 Mar 2020 16:22:52 +0000 (+0100) Subject: couple of new sg_exec_* functions X-Git-Tag: v3.26~791 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a9b7bc21f207a2c28fe6f782e8cf4e3817d66231?ds=sidebyside couple of new sg_exec_* functions --- diff --git a/include/simgrid/exec.h b/include/simgrid/exec.h index b440156858..b74cfad49a 100644 --- a/include/simgrid/exec.h +++ b/include/simgrid/exec.h @@ -15,8 +15,11 @@ SG_BEGIN_DECL XBT_PUBLIC void sg_exec_set_bound(sg_exec_t exec, double bound); XBT_PUBLIC void sg_exec_set_host(sg_exec_t exec, sg_host_t new_host); XBT_PUBLIC double sg_exec_get_remaining(const_sg_exec_t exec); +XBT_PUBLIC double sg_exec_get_remaining_ratio(const_sg_exec_t exec); XBT_PUBLIC void sg_exec_start(sg_exec_t exec); +XBT_PUBLIC void sg_exec_cancel(sg_exec_t exec); +XBT_PUBLIC int sg_exec_test(sg_exec_t exec); XBT_PUBLIC sg_error_t sg_exec_wait(sg_exec_t exec); XBT_PUBLIC sg_error_t sg_exec_wait_for(sg_exec_t exec, double timeout); diff --git a/src/s4u/s4u_Exec.cpp b/src/s4u/s4u_Exec.cpp index aff4907cc4..ba688e407c 100644 --- a/src/s4u/s4u_Exec.cpp +++ b/src/s4u/s4u_Exec.cpp @@ -227,14 +227,34 @@ double sg_exec_get_remaining(const_sg_exec_t exec) return exec->get_remaining(); } +double sg_exec_get_remaining_ratio(const_sg_exec_t exec) +{ + return exec->get_remaining_ratio(); +} + void sg_exec_start(sg_exec_t exec) { exec->start(); } +void sg_exec_cancel(sg_exec_t exec) +{ + exec->cancel(); + exec->unref(); +} + +int sg_exec_test(sg_exec_t exec) +{ + bool finished = exec->test(); + if (finished) + exec->unref(); + return finished; +} + sg_error_t sg_exec_wait(sg_exec_t exec) { sg_error_t status = SG_OK; + try { exec->wait_for(-1); } catch (const simgrid::TimeoutException&) {