From e9a86ac48ea8d06ddebe18744c40548a9f65956f Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Sun, 29 Jul 2018 00:23:50 +0200 Subject: [PATCH] allow to cancel a s4u::Exec --- include/simgrid/s4u/Activity.hpp | 2 +- include/simgrid/s4u/Comm.hpp | 2 +- include/simgrid/s4u/Exec.hpp | 1 + src/s4u/s4u_Exec.cpp | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/simgrid/s4u/Activity.hpp b/include/simgrid/s4u/Activity.hpp index 4db481e1cb..7e53d03c78 100644 --- a/include/simgrid/s4u/Activity.hpp +++ b/include/simgrid/s4u/Activity.hpp @@ -57,7 +57,7 @@ public: * Raises: timeout exception.*/ virtual Activity* wait(double timeout) = 0; /** Cancel that activity */ - //virtual void cancel(); + virtual Activity* cancel() = 0; /** Retrieve the current state of the activity */ Activity::State get_state() { return state_; } diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index 0140476f63..dd24d5171c 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -69,7 +69,7 @@ public: size_t get_dst_data_size(); bool test(); - Activity* cancel(); + Activity* cancel() override; /** Retrieve the mailbox on which this comm acts */ MailboxPtr get_mailbox(); diff --git a/include/simgrid/s4u/Exec.hpp b/include/simgrid/s4u/Exec.hpp index 9616bfe2c5..b47ac41e9e 100644 --- a/include/simgrid/s4u/Exec.hpp +++ b/include/simgrid/s4u/Exec.hpp @@ -26,6 +26,7 @@ public: Activity* start() override; Activity* wait() override; Activity* wait(double timeout) override; + Activity* cancel() override; bool test(); ExecPtr set_priority(double priority); diff --git a/src/s4u/s4u_Exec.cpp b/src/s4u/s4u_Exec.cpp index dc9c7a91aa..94da9d2bd3 100644 --- a/src/s4u/s4u_Exec.cpp +++ b/src/s4u/s4u_Exec.cpp @@ -20,6 +20,13 @@ Activity* Exec::start() return this; } +Activity* Exec::cancel() +{ + simcall_execution_cancel(pimpl_); + state_ = State::CANCELED; + return this; +} + Activity* Exec::wait() { simcall_execution_wait(pimpl_); -- 2.20.1