OMbegin_op and OMend_op


Synopsis


void  OMbegin_op ();

void  OMend_op ();

Description

OMbegin_op and OMend_op suspend then subsequently resume execution of objects.

You use OMbegin_op and OMend_op in pairs:


OMbegin_op();
... /* Statements that update objects, such as
   by making connections or setting values. */
OMend_op();

•      OMbegin_op instructs the Object Manager to queue event notifications that subsequently occur. Consequently, objects do not execute.

•      OMend_op delivers the queued notifications to the appropriate objects. The objects execute according to those notifications.

Calls to OMbegin_op and OMend_op can be nested. OMend_op delivers the notifications queued since the most recent call to OMbegin_op. It also removes those notifications from the queue.

OMend_op acts as a synchronization point. When OMend_op returns, all notifications queued since the most recent call to OMbegin_op will have been delivered and the objects will have finished executing.

OMbegin_op is generally easier to use than its lower-level alternative, OMpush_ctx, but is not as flexible. OMbegin_op and OMend_op are equivalent to the following calls to OMpush_ctx and OMpop_ctx:


OMpush_ctx(OMroot_obj, OM_STATE_TRANSIENT, 0, 0);
...
OMpop_ctx(OMroot_obj);

See also

•      OMpush_ctx and OMpop_ctx