SBL_UnblockNotifications
SBL_UnblockNotifications conditionally unblocks delivery of
notifications.
Synopsis:
int status = SBL_UnblockNotifications()
Parameters:
none
Description:
SBL_UnblockNotifications conditionally unblocks delivery of
notifications to all receive buffers of a calling process.
SBL maintains internal counter which counts blocking level of
notifications. This counter is incremented each time
SBL_BlockNotifications is called.
When SBL_UnblockNotifications is called, and this counter is
positive, it is decremented. When this counter is zero, a call to
SBL_UnblockNotifications has no effect. Notifications are
unblocked only if this counter reaches zero.
Notifications are automatically blocked when a notification handler is
called. SBL_UnblockNotifications can be called from within a
notification handler, but it cannot actually unblock notifications in such
case. If the internal counter is one, and SBL_UnblockNotifications
is called from the handler, this call returns SBL_ENotInHandler
error and the counter remains unchanged.
Return Values:
SBL_UnblockNotifications returns positive integer if this call
actually unblocked notifications, or zero if it only decremented internal
counter. Negative error code can be also returned, as described above.
Example
The following loop unconditionally unblocks notifications (with error
set if it is called inside handler):
int status;
while (status = SBL_UnblockNotifications()) == 0);
if (status < 0) SBL_Error(status,"unconditional unblocking");
Copyright (c) 1995,
Princeton University