A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
factoring with an ActivityImpl::clean_action() method
[simgrid.git]
/
src
/
kernel
/
actor
/
ActorImpl.cpp
diff --git
a/src/kernel/actor/ActorImpl.cpp
b/src/kernel/actor/ActorImpl.cpp
index
8f78d87
..
af4a2b5
100644
(file)
--- a/
src/kernel/actor/ActorImpl.cpp
+++ b/
src/kernel/actor/ActorImpl.cpp
@@
-207,8
+207,7
@@
void ActorImpl::exit()
if (exec != nullptr && exec->surf_action_) {
exec->cancel();
if (exec != nullptr && exec->surf_action_) {
exec->cancel();
- exec->surf_action_->unref();
- exec->surf_action_ = nullptr;
+ exec->clean_action();
} else if (comm != nullptr) {
comms.remove(waiting_synchro);
comm->cancel();
} else if (comm != nullptr) {
comms.remove(waiting_synchro);
comm->cancel();
@@
-438,7
+437,7
@@
void ActorImpl::throw_exception(std::exception_ptr e)
activity::SleepImplPtr sleep = boost::dynamic_pointer_cast<activity::SleepImpl>(waiting_synchro);
if (sleep != nullptr) {
activity::SleepImplPtr sleep = boost::dynamic_pointer_cast<activity::SleepImpl>(waiting_synchro);
if (sleep != nullptr) {
-
SIMIX_process_sleep_destroy(sleep
);
+
sleep->clean_action(
);
if (std::find(begin(simix_global->actors_to_run), end(simix_global->actors_to_run), this) ==
end(simix_global->actors_to_run) &&
this != SIMIX_process_self()) {
if (std::find(begin(simix_global->actors_to_run), end(simix_global->actors_to_run), this) ==
end(simix_global->actors_to_run) &&
this != SIMIX_process_self()) {
@@
-589,7
+588,7
@@
void SIMIX_process_throw(smx_actor_t actor, xbt_errcat_t cat, int value, const c
simgrid::kernel::activity::SleepImplPtr sleep =
boost::dynamic_pointer_cast<simgrid::kernel::activity::SleepImpl>(actor->waiting_synchro);
if (sleep != nullptr) {
simgrid::kernel::activity::SleepImplPtr sleep =
boost::dynamic_pointer_cast<simgrid::kernel::activity::SleepImpl>(actor->waiting_synchro);
if (sleep != nullptr) {
-
SIMIX_process_sleep_destroy(sleep
);
+
sleep->clean_action(
);
if (std::find(begin(simix_global->actors_to_run), end(simix_global->actors_to_run), actor) ==
end(simix_global->actors_to_run) &&
actor != SIMIX_process_self()) {
if (std::find(begin(simix_global->actors_to_run), end(simix_global->actors_to_run), actor) ==
end(simix_global->actors_to_run) &&
actor != SIMIX_process_self()) {
@@
-690,16
+689,6
@@
void simcall_HANDLER_process_sleep(smx_simcall_t simcall, double duration)
simcall->issuer->waiting_synchro = sync;
}
simcall->issuer->waiting_synchro = sync;
}
-void SIMIX_process_sleep_destroy(simgrid::kernel::activity::SleepImplPtr sleep)
-{
- XBT_DEBUG("Destroy sleep synchro %p", sleep.get());
-
- if (sleep->surf_action_) {
- sleep->surf_action_->unref();
- sleep->surf_action_ = nullptr;
- }
-}
-
/**
* @brief Calling this function makes the process to yield.
*
/**
* @brief Calling this function makes the process to yield.
*