- while (not simcalls_.empty()) {
- smx_simcall_t simcall = simcalls_.front();
- simcalls_.pop_front();
- e_smx_state_t result;
- if (host && host->is_off()) {
- /* If the host running the synchro failed, notice it. This way, the asking
- * actor can be killed if it runs on that host itself */
- result = SIMIX_SRC_HOST_FAILURE;
- simcall->issuer->exception =
- std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed"));
- }
+ surf_action_ = host_->get_cpu()->sleep(duration_);
+ surf_action_->set_activity(this);
+ XBT_DEBUG("Create sleep synchronization %p", this);
+ return this;
+}