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