X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6dd9ac3c915f00f23fb07005516f051f7ce9cb8f..0d4065e84bc5b13ae87790aba6294c7a21bc0199:/src/simix/ActorImpl.cpp diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index 4ee0c20f64..fd72b81eb2 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -498,10 +498,12 @@ void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) { process->suspended_ = false; process->exception = nullptr; + if (process->host_->is_off()) + process->throw_exception(std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed"))); + /* destroy the blocking synchro if any */ if (process->waiting_synchro != nullptr) { - if (process->host_->is_off()) - process->throw_exception(std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed"))); + simgrid::kernel::activity::ExecImplPtr exec = boost::dynamic_pointer_cast(process->waiting_synchro); simgrid::kernel::activity::CommImplPtr comm = @@ -536,7 +538,9 @@ void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) { } else if (io != nullptr) { delete io.get(); } else { - xbt_die("Unknown type of activity"); + simgrid::kernel::activity::ActivityImplPtr activity = process->waiting_synchro; + xbt_die("Activity %s is of unknown type %s", activity->name_.c_str(), + simgrid::xbt::demangle(typeid(activity).name()).get()); } process->waiting_synchro = nullptr;