This section describes two forms for the ordered construct, the stand-alone ordered construct and the block-associated ordered construct. Both forms include the execution model events, tool callbacks, and restrictions listed in this section.
Execution Model Events
The ordered-acquiring event occurs in the task that encounters the ordered construct on entry to the ordered region before it initiates synchronization for the region. The ordered-acquired event occurs in the task that encounters the ordered construct after it enters the region, but before it executes the structured block of the ordered region. The ordered-released event occurs in the task that encounters the ordered construct after it completes any synchronization on exit from the ordered region.Tool Callbacks
A thread dispatches a registered ompt_callback_mutex_acquire callback for each occurrence of an ordered-acquiring event in that thread. This callback has the type signature ompt_callback_mutex_acquire_t.
A thread dispatches a registered ompt_callback_mutex_acquired callback for each occurrence of an ordered-acquired event in that thread. This callback has the type signature ompt_callback_mutex_t.
A thread dispatches a registered ompt_callback_mutex_released callback with ompt_mutex_ordered as the kind argument if practical, although a less specific kind may be used, for each occurrence of an ordered-released event in that thread. This callback has the type signature ompt_callback_mutex_t and occurs in the task that encounters the construct.
Restrictions
Cross References