namespace kernel {
namespace activity {
-RawImpl* RawImpl::start(s4u::Host* host, double timeout)
+RawImpl& RawImpl::set_host(s4u::Host* host)
{
- surf_action_ = host->pimpl_cpu->sleep(timeout);
- surf_action_->set_data(this);
- return this;
+ host_ = host;
+ return *this;
+}
+RawImpl& RawImpl::set_timeout(double timeout)
+{
+ timeout_ = timeout;
+ return *this;
}
-RawImpl::~RawImpl()
+RawImpl* RawImpl::start()
{
- surf_action_->unref();
+ surf_action_ = host_->pimpl_cpu->sleep(timeout_);
+ surf_action_->set_data(this);
+ return this;
}
void RawImpl::suspend()
switch (state_) {
case SIMIX_DONE:
/* do nothing, synchro done */
- XBT_DEBUG("SIMIX_execution_finished: execution successful");
+ XBT_DEBUG("RawImpl::finish(): execution successful");
break;
case SIMIX_FAILED:
- XBT_DEBUG("SIMIX_execution_finished: host '%s' failed", simcall->issuer->get_host()->get_cname());
+ XBT_DEBUG("RawImpl::finish(): host '%s' failed", simcall->issuer->get_host()->get_cname());
simcall->issuer->context_->iwannadie = true;
simcall->issuer->exception_ =
std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed"));
switch (simcall->call) {
case SIMCALL_MUTEX_LOCK:
- simgrid::xbt::intrusive_erase(simcall_mutex_lock__get__mutex(simcall)->sleeping, *simcall->issuer);
+ simgrid::xbt::intrusive_erase(simcall_mutex_lock__get__mutex(simcall)->sleeping_, *simcall->issuer);
break;
case SIMCALL_COND_WAIT: