.def(
"on_exit",
[](py::object fun) {
+ fun.inc_ref(); // FIXME: why is this needed for tests like actor-kill and actor-lifetime?
simgrid::s4u::this_actor::on_exit([fun](bool /*failed*/) {
GilScopedAcquire py_context; // need a new context for callback
try {
py::class_<Engine>(m, "Engine", "Simulation Engine")
.def(py::init([](std::vector<std::string> args) {
static char noarg[] = {'\0'};
- int argc = args.size();
+ int argc = static_cast<int>(args.size());
std::unique_ptr<char* []> argv(new char*[argc + 1]);
for (int i = 0; i != argc; ++i)
argv[i] = args[i].empty() ? noarg : &args[i].front();
/* Class Host */
py::class_<simgrid::s4u::Host, std::unique_ptr<Host, py::nodelete>>(m, "Host", "Simulated host")
.def("by_name", &Host::by_name, "Retrieves a host from its name, or die")
- .def("get_pstate_count", &Host::get_pstate_count, "Retrieve the cound of defined pstate levels")
+ .def("get_pstate_count", &Host::get_pstate_count, "Retrieve the count of defined pstate levels")
.def("get_pstate_speed", &Host::get_pstate_speed, "Retrieve the maximal speed at the given pstate")
.def_property(
"pstate", &Host::get_pstate,
// data.dec_ref(); // FIXME: why does it break python-actor-create?
return data;
},
- py::call_guard<GilScopedRelease>(), "Blocking data reception");
+ py::call_guard<GilScopedRelease>(), "Blocking data reception")
+ .def("set_receiver",
+ [](Mailbox* self, ActorPtr actor) {
+ self->set_receiver(actor);
+ },
+ py::call_guard<GilScopedRelease>(),
+ "Sets the actor as permanent receiver");
/* Class Comm */
py::class_<simgrid::s4u::Comm, simgrid::s4u::CommPtr>(m, "Comm", "Communication")