Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
OOP is good, too
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Fri, 25 Feb 2022 22:35:54 +0000 (23:35 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Fri, 25 Feb 2022 22:35:54 +0000 (23:35 +0100)
src/kernel/actor/ActorImpl.cpp

index 19ff81c..1b89c8b 100644 (file)
@@ -207,18 +207,7 @@ void ActorImpl::exit()
   if (waiting_synchro_ != nullptr) {
     waiting_synchro_->cancel();
     waiting_synchro_->set_state(activity::State::FAILED);
-
-    activity::ExecImplPtr exec = boost::dynamic_pointer_cast<activity::ExecImpl>(waiting_synchro_);
-    activity::CommImplPtr comm = boost::dynamic_pointer_cast<activity::CommImpl>(waiting_synchro_);
-
-    if (exec != nullptr) {
-      exec->clean_action();
-    } else if (comm != nullptr) {
-      comm->unregister_simcall(&simcall_);
-    } else {
-      activity::ActivityImplPtr(waiting_synchro_)->finish();
-    }
-
+    waiting_synchro_->post();
     activities_.remove(waiting_synchro_);
     waiting_synchro_ = nullptr;
   }