Regenerate message queue directives from the rtems-central spec in order to include the detailed note about non-atomicity of broadcast.
This file is selectively added, other changes in generated files are omitted. Update #4804. --- c-user/message/directives.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/c-user/message/directives.rst b/c- user/message/directives.rst index a13e4c7..ac53ec4 100644 --- a/c-user/message/directives.rst +++ b/c-user/message/directives.rst @@ -758,6 +758,14 @@ The execution time of this directive is directly related to the number of tasks waiting on the message queue, although it is more efficient than the equivalent number of invocations of :ref:`InterfaceRtemsMessageQueueSend`. +:ref:`InterfaceRtemsMessageQueueBroadcast` unblocks :term:`receivers +<receiver>` in a non-atomic way. Meaning, it will not only :term:`unblock` +those :term:`receivers <receiver>` it finds waiting at the queue when +:ref:`InterfaceRtemsMessageQueueBroadcast` is invoked but also any new +:term:`receivers <receiver>` which start waiting for messages after +:ref:`InterfaceRtemsMessageQueueBroadcast` is invoked and before it returns. +This may lead to infinite unblocking loops. + .. rubric:: CONSTRAINTS: The following constraints apply to this directive: -- 2.30.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel