- Directly with :py:func:`simgrid.Actor.create()`
- From XML with :py:func:`simgrid.Engine.register_actor()` and then :py:func:`simgrid.Engine.load_deployment()`
+ .. example-tab:: examples/c/actor-create/actor-create.c
+
+ You create actors either:
+
+ - Directly with :cpp:func:`sg_actor_create()` followed by :cpp:func:`sg_actor_start`.
+ - From XML with :cpp:func:`simgrid_register_function` and then :cpp:func:`simgrid_load_deployment`.
+
.. example-tab:: examples/python/actor-create/actor-create_d.xml
The following file is used in both C++ and Python.
.. example-tab:: examples/s4u/actor-kill/s4u-actor-kill.cpp
See also :cpp:func:`void simgrid::s4u::Actor::kill(void)`, :cpp:func:`void simgrid::s4u::Actor::kill_all()`,
- :cpp:func:`simgrid::s4u::this_actor::exit`.
+ :cpp:func:`simgrid::s4u::this_actor::exit`, :cpp:func:`simgrid::s4u::this_actor::on_exit`.
.. example-tab:: examples/python/actor-kill/actor-kill.py
- See also :py:func:`simgrid.Actor.kill`, :py:func:`simgrid.Actor.kill_all`, :py:func:`simgrid.this_actor.exit`.
+ See also :py:func:`simgrid.Actor.kill`, :py:func:`simgrid.Actor.kill_all`, :py:func:`simgrid.this_actor.exit`,
+ :py:func:`simgrid.this_actor.on_exit`.
+
+ .. example-tab:: examples/c/actor-kill/actor-kill.c
+
+ See also :cpp:func:`sg_actor_kill`, :cpp:func:`sg_actor_kill_all`, :cpp:func:`sg_actor_exit`, :cpp:func:`sg_actor_on_exit`.
- **Controling the actor life cycle from the XML:**
You can specify a start time and a kill time in the deployment file.
See also :py:func:`simgrid.Actor.daemonize()` and :py:func:`simgrid.Actor.is_daemon()`.
+ .. example-tab:: examples/c/actor-daemon/actor-daemon.c
+
+ See also :cpp:func:`sg_actor_daemonize` and :cpp:func:`sg_actor_is_daemon`.
+
Inter-Actors Interactions
-------------------------
See also :py:func:`simgrid.Actor.join()`.
+ .. example-tab:: examples/c/actor-join/actor-join.c
+
+ See also :cpp:func:`sg_actor_join`.
+
- **Yielding to other actors**.
The ```yield()``` function interrupts the execution of the current
actor, leaving a chance to the other actors that are ready to run
.. example-tab:: examples/python/async-waitany/async-waitany.py
See also :py:func:`simgrid.Comm.wait_any()`.
+
+ .. example-tab:: examples/c/async-waitany/async-waitany.c
+
+ See also :cpp:func:`sg_comm_wait_any`.
.. _s4u_ex_execution:
---------------------------------
- **Barrier:**
- Shows how to use simgrid::s4u::Barrier synchronization objects.
+ Shows how to use :cpp:type:`simgrid::s4u::Barrier` synchronization objects.
.. tabs::
.. example-tab:: examples/s4u/synchro-barrier/s4u-synchro-barrier.cpp
- **Condition variable:**
- Shows how to use simgrid::s4u::ConditionVariable synchronization objects.
+ Shows how to use :cpp:type:`simgrid::s4u::ConditionVariable` synchronization objects.
.. tabs::
.. example-tab:: examples/s4u/synchro-condition-variable/s4u-synchro-condition-variable.cpp
- **Mutex:**
- Shows how to use simgrid::s4u::Mutex synchronization objects.
+ Shows how to use :cpp:type:`simgrid::s4u::Mutex` synchronization objects.
.. tabs::
.. example-tab:: examples/s4u/synchro-mutex/s4u-synchro-mutex.cpp
- **Semaphore:**
- Shows how to use simgrid::s4u::Semaphore synchronization objects.
+ Shows how to use :cpp:type:`simgrid::s4u::Semaphore` synchronization objects.
.. tabs::