Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
split a function in two and kill it
[simgrid.git] / src / s4u / s4u_Comm.cpp
index c231d1e..0b57262 100644 (file)
@@ -184,9 +184,8 @@ Activity* Comm::detach()
 
 Activity* Comm::cancel()
 {
-  simgrid::kernel::activity::CommImplPtr commPimpl =
-      boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(pimpl_);
-  commPimpl->cancel();
+  simgrid::simix::simcall([this] { dynamic_cast<kernel::activity::CommImpl*>(pimpl_.get())->cancel(); });
+  state_ = State::CANCELED;
   return this;
 }