- 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->throw_exception(
- std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed")));
- }
+ host_ = host;
+ return *this;
+}
+
+SleepImpl& SleepImpl::set_duration(double duration)
+{
+ duration_ = duration;
+ return *this;
+}
+
+SleepImpl* SleepImpl::start()
+{
+ surf_action_ = host_->pimpl_cpu->sleep(duration_);
+ surf_action_->set_activity(this);
+ XBT_DEBUG("Create sleep synchronization %p", this);
+ return this;
+}