Provides synchronous pre-event reporting
because the callback can determine whether or not the event is allowable.
If the callback returns a nonzero value, the transaction is aborted
and the callback’s return value is returned to the module
that created the event.
Since the module that created the event waits for a response
while the callback processes, callbacks need to return as quickly
as possible.
The callback can sleep, but usually only sleeps to allocate
memory.
A zero (0) return value indicates success. A nonzero value
indicates failure.
This priority is the most difficult one to use for chained
event handlers. You cannot assume that an eDirectory event will
complete if your callback returns zero. The next callback in the
chain could abort the transaction. To verify changes occurred, register
a callback for the DSEP_JOURNAL or DSEP_WORK priorities.
Warning: While inside this callback, use discretion in calling
functions that create more eDirectory events. This is a closed loop
where the growth of the journal queue could be uncontrollable. |