Skip to content
Commit 0b08924b authored by Philippe Gerum's avatar Philippe Gerum
Browse files

evl/monitor: extend ungated event interface



Applications were missing some features from ungated events
(i.e. count/sema4 and mask) in order to make it easier to use them as
building blocks of other synchronization mechanisms. This change set
adds the following support to fix this:

- the ability to broadcast a count, which is essentially a way to
  unblock all waiters atomically, returning with a specific error code
  denoting the condition. This is much simpler and more reliable
  compared to unblocking all waiters manually.

- the ability to broadcast an event mask, so that all waiters receive
  the same set of bits. This feature makes it simpler to implement
  gang-based logic in applications, when multiple threads consume
  particular states of a given event (which gated events do not allow
  easily).

- support for conjunctive and disjunctive wait modes for event masks,
  so that threads can wait for a particular set of bits to be set in
  the mask, with AND/OR semantics. This departs from the former always
  disjunctive, all-or-nothing logic to consume bits.

Signed-off-by: default avatarPhilippe Gerum <rpm@xenomai.org>
parent 888ac6ec
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment