#include "mc/mc.h"
#include "simgrid/Exception.hpp"
+#include "simgrid/s4u/Actor.hpp"
+#include "simgrid/s4u/Exec.hpp"
#include "smx_private.hpp"
#include "src/kernel/activity/CommImpl.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
return nullptr;
} else {
- return SIMIX_execution_start("suspend", "", 0.0, 1.0, 0.0, this->host_);
+ return activity::ExecImplPtr(new activity::ExecImpl("suspend", "", nullptr, this->host_))->start(0.0, 1.0, 0.0);
}
}
throw_exception(std::make_exception_ptr(simgrid::HostFailureException(
XBT_THROW_POINT, std::string("Host ") + std::string(host_->get_cname()) + " failed, you cannot sleep there.")));
- simgrid::kernel::activity::SleepImpl* synchro = new simgrid::kernel::activity::SleepImpl();
- synchro->host = host_;
- synchro->surf_action_ = host_->pimpl_cpu->sleep(duration);
- synchro->surf_action_->set_data(synchro);
- XBT_DEBUG("Create sleep synchronization %p", synchro);
-
- return synchro;
+ return simgrid::kernel::activity::SleepImplPtr(new simgrid::kernel::activity::SleepImpl("sleep", host_))
+ ->start(duration);
}
void ActorImpl::throw_exception(std::exception_ptr e)