From: Martin Quinson Date: Mon, 1 Oct 2018 18:57:32 +0000 (+0200) Subject: Document the semaphores' example (and fix other doc glitches) X-Git-Tag: v3_21~14 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3958c62bc542feb7c28818441ae6cdd56e7bf596?hp=83acfa5389165446231f2b5006f4308b19f4ef10 Document the semaphores' example (and fix other doc glitches) --- diff --git a/ChangeLog b/ChangeLog index 1b005045e8..618a6ddd59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ Documentation: S4U new features: - Fully reimplement auto_restart mechanism that was utterly broken (fix #22, #131 and #281 that were all very related) + - Implement semaphores (fix #303 and #291) - When creating an actor from a function and its parameters, move-only parameters are not allowed anymore, as it would prevent the actor to be restartable if its parameters are consumed on run. @@ -77,6 +78,7 @@ Fixed bugs: - #288: MPI_Init(NULL, NULL) - #289: Improve documentation of Actor::on_destruction and this_actor::on_exit() - #290: Method to check if a mailbox has a message ready to be consumed + - #291: [s4u] semaphores do not seem available yet - #294: Alltoall collective implementation of mpich - #295: Starting a Host as OFF is not supported - #296: DTD too permissive diff --git a/docs/source/app_java.rst b/docs/source/app_java.rst index 828c5f4620..ebe7a8688d 100644 --- a/docs/source/app_java.rst +++ b/docs/source/app_java.rst @@ -18,7 +18,7 @@ The Java Bindings This section describes jMSG, the Java API to Simgrid. This API mimicks :ref:`MSG `, which is a simple yet somehow realistic interface. -The full reference documentation is provided at the end of this page. +The full reference documentation is provided at the end of this page. Most of the documentation of the :ref:`MSG API ` in C applies directly to the Java bindings (any divergence is seen as a bug that we diff --git a/docs/source/app_s4u.rst b/docs/source/app_s4u.rst index 2ada588dc5..0c26d1809e 100644 --- a/docs/source/app_s4u.rst +++ b/docs/source/app_s4u.rst @@ -33,28 +33,28 @@ should use the deprecated MSG API instead. Main Concepts ************* -A typical SimGrid simulation is composed of several |Actors|_, that +A typical SimGrid simulation is composed of several |API_s4u_Actors|_, that execute user-provided functions. The actors have to explicitly use the S4U interface to express their :ref:`computation `, :ref:`communication `, :ref:`disk usage `, -and other |Activities|_, so that they get reflected within the -simulator. These activities take place on resources such as |Hosts|_, -|Links|_ and |Storages|_. SimGrid predicts the time taken by each +and other |API_s4u_Activities|_, so that they get reflected within the +simulator. These activities take place on resources such as |API_s4u_Hosts|_, +|API_s4u_Links|_ and |API_s4u_Storages|_. SimGrid predicts the time taken by each activity and orchestrates the actors accordingly, waiting for the completion of these activities. When **communicating**, data is not directly sent to other actors but -posted onto a |Mailbox|_ that serves as a rendez-vous point between +posted onto a |API_s4u_Mailbox|_ that serves as a rendez-vous point between communicating actors. This means that you don't need to know who you are talking to, you just put your communication `Put` request in a mailbox, and it will be matched with a complementary `Get` request. Alternatively, actors can interact through **classical -synchronization mechanisms** such as |Barrier|_, |Semaphore|_, -|Mutex|_ and |ConditionVariable|_. +synchronization mechanisms** such as |API_s4u_Barrier|_, |API_s4u_Semaphore|_, +|API_s4u_Mutex|_ and |API_s4u_ConditionVariable|_. -Each actor is located on a simulated |Host|_. Each host is located -itself in a |NetZone|_, that knows the networking path between one +Each actor is located on a simulated |API_s4u_Host|_. Each host is located +itself in a |API_s4u_NetZone|_, that knows the networking path between one resource to another. Each NetZone is included in another one, forming a tree of NetZones which root zone contains the whole platform. @@ -101,41 +101,37 @@ provides many helper functions to simplify the code of actors. - :ref:`class s4u::Semaphore ` -.. |Actors| replace:: **Actors** -.. _Actors: api/classsimgrid_1_1s4u_1_1Actor.html +.. |API_s4u_Actors| replace:: **Actors** +.. _API_s4u_Actors: #s4u-actor -.. |Activities| replace:: **Activities** -.. _Activities: api/classsimgrid_1_1s4u_1_1Activity.html +.. |API_s4u_Activities| replace:: **Activities** +.. _API_s4u_Activities: #s4u-activity -.. |Hosts| replace:: **Hosts** -.. _Hosts: api/classsimgrid_1_1s4u_1_1Host.html +.. |API_s4u_Hosts| replace:: **Hosts** +.. _API_s4u_Hosts: #s4u-host -.. |Links| replace:: **Links** -.. _Links: api/classsimgrid_1_1s4u_1_1Link.html +.. |API_s4u_Links| replace:: **Links** +.. _API_s4u_Links: #s4u-link -.. |Storages| replace:: **Storages** -.. _Storages: api/classsimgrid_1_1s4u_1_1Storage.html +.. |API_s4u_Storages| replace:: **Storages** +.. _API_s4u_Storages: #s4u-storage -.. |VirtualMachines| replace:: **VirtualMachines** -.. _VirtualMachines: api/classsimgrid_1_1s4u_1_1VirtualMachine.html +.. |API_s4u_VirtualMachines| replace:: **VirtualMachines** +.. _API_s4u_VirtualMachines: #s4u-virtualmachine -.. |Host| replace:: **Host** -.. _Host: api/classsimgrid_1_1s4u_1_1Host.html +.. |API_s4u_Host| replace:: **Host** -.. |Mailbox| replace:: **Mailbox** -.. _Mailbox: api/classsimgrid_1_1s4u_1_1Mailbox.html +.. |API_s4u_Mailbox| replace:: **Mailbox** -.. |NetZone| replace:: **NetZone** -.. _NetZone: api/classsimgrid_1_1s4u_1_1NetZone.html +.. |API_s4u_NetZone| replace:: **NetZone** -.. |Barrier| replace:: **Barrier** -.. _Barrier: api/classsimgrid_1_1s4u_1_1Barrier.html +.. |API_s4u_Barrier| replace:: **Barrier** -.. |ConditionVariable| replace:: **ConditionVariable** -.. _ConditionVariable: api/classsimgrid_1_1s4u_1_1ConditionVariable.html +.. |API_s4u_Semaphore| replace:: **Semaphore** -.. |Mutex| replace:: **Mutex** -.. _Mutex: api/classsimgrid_1_1s4u_1_1Mutex.html +.. |API_s4u_ConditionVariable| replace:: **ConditionVariable** + +.. |API_s4u_Mutex| replace:: **Mutex** .. THE EXAMPLES diff --git a/examples/s4u/README.rst b/examples/s4u/README.rst index 9293cb5ecf..f672f35432 100644 --- a/examples/s4u/README.rst +++ b/examples/s4u/README.rst @@ -214,6 +214,10 @@ Classical synchronization objects Shows how to use simgrid::s4u::Barrier synchronization objects. |br| `examples/s4u/synchro-barrier/s4u-synchro-barrier.cpp `_ + - **Semaphore:** + Shows how to use simgrid::s4u::Semaphore synchronization objects. + |br| `examples/s4u/synchro-semaphore/s4u-synchro-semaphore.cpp `_ + ============================= Interacting with the Platform ============================= diff --git a/include/simgrid/s4u/Mutex.hpp b/include/simgrid/s4u/Mutex.hpp index 60c452520c..4c8b9207fa 100644 --- a/include/simgrid/s4u/Mutex.hpp +++ b/include/simgrid/s4u/Mutex.hpp @@ -23,7 +23,7 @@ namespace s4u { *