Event

Participant Notifier Port Send events Service /sensor_fusion Participant Listener Port Receive events Participant Listener Port Receive events notify wake up wake up

Event Communication Model

A messaging pattern for coordinating execution between participants. The Event messaging pattern is not intended for sharing payload data, but rather communicating to other participants that there is work to do.

Mechanism

Participant Notifier Port notify Event Service Semaphore Socket Condition Variable Interrupt CudaEvent wake up id wake up Participant Listener Port sleeping Participant Listener Port active Participant Listener Port sleeping

Events over Native Sleep/Wake-up Mechanisms

The event messaging pattern abstracts over sleep and wake-up mechanisms of the platform. Listeners can put their thread into a sleep state and be woken up by notifiers on the service.

A single participant can handle multiple listeners using a Waitset, which allows the participant to wait on several event sources simultaneously.

An EventId is provided with each notification, either assigned automatically or specified by the notifier, to facilitate event handling by the receiving participants.

Further Reading

Understand Execution Control

Understand how Event services fit into the bigger picture of execution control with iceoryx2.

Execution Control
Example: Event Service (Rust)

See how to set up a basic Event service.

https://github.com/eclipse-iceoryx/iceoryx2/tree/main/examples/rust/event
Example: Event Multiplexing (Rust)

See how to handle multiple Event services in a single user thread.

https://github.com/eclipse-iceoryx/iceoryx2/tree/main/examples/rust/event_multiplexing