Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use named parameters instead of overloads for py::execute
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 1 Jan 2019 10:57:24 +0000 (11:57 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 1 Jan 2019 10:57:24 +0000 (11:57 +0100)
examples/python/exec-basic/exec-basic.py
src/bindings/python/simgrid_python.cpp

index 7ab3769..4c7275d 100644 (file)
@@ -14,14 +14,12 @@ def executor():
     # This simple example does not do anything beyond that
 
 def privileged():
     # This simple example does not do anything beyond that
 
 def privileged():
-    #  This version of execute() with two parameters specifies that this execution
-    # gets a larger share of the resource.
-    #
-    # Since the priority is 2, it computes twice as fast as a regular one.
+    # You can also specify the priority of your execution as follows.
+    # An execution of priority 2 computes twice as fast as a regular one.
     #
     # So instead of a half/half sharing between the two executions,
     # we get a 1/3 vs 2/3 sharing.
     #
     # So instead of a half/half sharing between the two executions,
     # we get a 1/3 vs 2/3 sharing.
-    this_actor.execute(98095, 2);
+    this_actor.execute(98095, priority = 2);
     this_actor.info("Done.");
 
     # Note that the timings printed when executing this example are a bit misleading,
     this_actor.info("Done.");
 
     # Note that the timings printed when executing this example are a bit misleading,
index 7c33438..e77d5d9 100644 (file)
@@ -57,12 +57,10 @@ PYBIND11_MODULE(simgrid, m)
   /* this_actor namespace */
   py::module m2 = m.def_submodule("this_actor", "Bindings of the s4u::this_actor namespace.");
   m2.def("info", [](char* s) { XBT_INFO("%s", s); }, "Display a logging message of default priority.");
   /* this_actor namespace */
   py::module m2 = m.def_submodule("this_actor", "Bindings of the s4u::this_actor namespace.");
   m2.def("info", [](char* s) { XBT_INFO("%s", s); }, "Display a logging message of default priority.");
-  m2.def("execute", py::overload_cast<double>(&simgrid::s4u::this_actor::execute),
-         "Block the current actor, computing the given amount of flops, see :cpp:func:`void "
-         "simgrid::s4u::this_actor::execute(double)`");
   m2.def("execute", py::overload_cast<double, double>(&simgrid::s4u::this_actor::execute),
          "Block the current actor, computing the given amount of flops at the given priority, see :cpp:func:`void "
   m2.def("execute", py::overload_cast<double, double>(&simgrid::s4u::this_actor::execute),
          "Block the current actor, computing the given amount of flops at the given priority, see :cpp:func:`void "
-         "simgrid::s4u::this_actor::execute(double, double)`");
+         "simgrid::s4u::this_actor::execute(double, double)`",
+         py::arg("flops"), py::arg("priority") = 1);
   m2.def("yield_", &simgrid::s4u::this_actor::yield,
          "Yield the actor, see :cpp:func:`void simgrid::s4u::this_actor::yield()`");
 
   m2.def("yield_", &simgrid::s4u::this_actor::yield,
          "Yield the actor, see :cpp:func:`void simgrid::s4u::this_actor::yield()`");