X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3a8a41d353f154422a95e78218a2496ab90ef471..d6902e7a60955bbbfd6c902ec923ac4d723319f8:/src/bindings/python/simgrid_python.cpp diff --git a/src/bindings/python/simgrid_python.cpp b/src/bindings/python/simgrid_python.cpp index a9f013559b..28300bc25c 100644 --- a/src/bindings/python/simgrid_python.cpp +++ b/src/bindings/python/simgrid_python.cpp @@ -80,10 +80,25 @@ PYBIND11_MODULE(simgrid, m) .def("load_deployment", &Engine::load_deployment, "Load a deployment file and launch the actors that it contains, see :cpp:func:`simgrid::s4u::Engine::load_deployment()`") .def("run", &Engine::run, "Run the simulation") - .def("register_function", [](Engine*, std::string name, std::function)> f) { + .def("register_function", [](Engine*, std::string name, py::object obj) { simgrid::simix::register_function(name, - [f](std::vector args) -> simgrid::simix::ActorCode { - return [args, f]() { f(args); }; + [obj](std::vector args) -> simgrid::simix::ActorCode { + return [obj, args]() { + /* Convert the std::vector into a py::tuple */ + py::tuple params(args.size()-1); + for (size_t i=1; i(pybind11::handle(static_cast(result))); + obj2(); + } + }; }); }, "Registers the main function of an actor, see :cpp:func:`simgrid::s4u::Engine::register_function()`") ;