+Suspending communications
+-------------------------
+
+The ``suspend()`` and ``resume()`` functions block the progression of a given communication for a while and then unblock it.
+``is_suspended()`` returns whether that activity is currently blocked or not.
+
+.. tabs::
+
+ .. example-tab:: examples/cpp/comm-suspend/s4u-comm-suspend.cpp
+
+ See also :cpp:func:`simgrid::s4u::Activity::suspend()`
+ :cpp:func:`simgrid::s4u::Activity::resume()` and
+ :cpp:func:`simgrid::s4u::Activity::is_suspended()`.
+
+ .. example-tab:: examples/python/comm-suspend/comm-suspend.py
+
+ See also :py:func:`simgrid.Comm.suspend()` and
+ :py:func:`simgrid.Comm.resume()`.
+
+Waiting for all communications in a set
+---------------------------------------
+
+The ``wait_all()`` function is useful when you want to block until all activities in a given set have been completed.
+
+.. tabs::
+
+ .. example-tab:: examples/cpp/comm-waitall/s4u-comm-waitall.cpp
+
+ See also :cpp:func:`simgrid::s4u::Comm::wait_all()`.
+
+ .. example-tab:: examples/python/comm-waitall/comm-waitall.py
+
+ See also :py:func:`simgrid.Comm.wait_all()`.
+
+ .. example-tab:: examples/c/comm-waitall/comm-waitall.c
+
+ See also :cpp:func:`sg_comm_wait_all()`.
+
+Waiting for the first completed communication in a set
+------------------------------------------------------
+
+The ``wait_any()`` blocks until one activity of the set completes, no matter which terminates first.
+
+.. tabs::
+
+ .. example-tab:: examples/cpp/comm-waitany/s4u-comm-waitany.cpp
+
+ See also :cpp:func:`simgrid::s4u::Comm::wait_any()`.
+
+ .. example-tab:: examples/python/comm-waitany/comm-waitany.py
+
+ See also :py:func:`simgrid.Comm.wait_any()`.
+
+ .. example-tab:: examples/c/comm-waitany/comm-waitany.c
+
+ See also :cpp:func:`sg_comm_wait_any`.
+
+Testing whether at least one communication completed
+----------------------------------------------------
+
+The ``test_any()`` returns whether at least one activity of the set has completed, or -1.
+
+.. tabs::
+
+ .. example-tab:: examples/cpp/comm-testany/s4u-comm-testany.cpp
+
+ See also :cpp:func:`simgrid::s4u::Comm::test_any()`.
+
+ .. example-tab:: examples/python/comm-testany/comm-testany.py
+
+ See also :py:func:`simgrid.Comm.test_any()`.
+
+.. _s4u_ex_comm_failure:
+
+Dealing with network failures
+-----------------------------
+
+This examples shows how to survive to network exceptions that occurs when a link is turned off, or when the actor with whom
+you communicate fails because its host is turned off. In this case, any blocking operation such as ``put``, ``get`` or
+``wait`` will raise an exception that you can catch and react to. See also :ref:`howto_churn`,
+:ref:`this example <s4u_ex_platform_state_profile>` on how to attach a state profile to hosts and
+:ref:`that example <s4u_ex_exec_failure>` on how to react to host failures.
+
+.. tabs::
+
+ .. example-tab:: examples/cpp/comm-failure/s4u-comm-failure.cpp
+
+ .. example-tab:: examples/python/comm-failure/comm-failure.py