From a9b7bc21f207a2c28fe6f782e8cf4e3817d66231 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Fri, 6 Mar 2020 17:22:52 +0100 Subject: [PATCH] couple of new sg_exec_* functions --- include/simgrid/exec.h | 3 +++ src/s4u/s4u_Exec.cpp | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) 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&) { -- 2.20.1