Synchronization Routines

Events:

CBL_EVENT_CLEAR Clear the specified event.
CBL_EVENT_CLOSE Close the supplied event handle
CBL_EVENT_OPEN_INTRA Create an intra-process event
CBL_EVENT_POST Post the specified event
CBL_EVENT_WAIT Waits for the event to be posted

Monitors:

CBL_MONITOR_BROWSE Acquire browse capability for a thread
CBL_MONITOR_BROWSE_TO_READ Convert browse capability to read capability
CBL_MONITOR_BROWSE_TO_WRITE Convert browse capability to write capability
CBL_MONITOR_CLOSE Close the supplied monitor handle
CBL_MONITOR_OPEN_INTRA Create a monitor
CBL_MONITOR_READ Acquire read capability
CBL_MONITOR_RELEASE Release a locked monitor
CBL_MONITOR_UNBROWSE Release browse capability
CBL_MONITOR_UNREAD Release read capability
CBL_MONITOR_UNWRITE Release write capability
CBL_MONITOR_WRITE Acquire write capability
CBL_MONITOR_WRITE_TO_BROWSE Convert monitor write capability to browse

Mutexes:

CBL_MUTEX_ACQUIRE Acquire a mutex
CBL_MUTEX_CLOSE Close the specified mutex
CBL_MUTEX_OPEN_INTRA Create an intra-process mutex
CBL_MUTEX_RELEASE Release the specified mutex

Semaphores:

CBL_SEMAPHORE_ACQUIRE Acquire one of the resources represented by the semaphore
CBL_SEMAPHORE_CLOSE Close a semaphore
CBL_SEMAPHORE_OPEN_INTRA Create an intra-process semaphore
CBL_SEMAPHORE_RELEASE Release one of the resources represented by the semaphore

Mutexes, semaphores, monitors and events can be used to synchronize threads. Synchronization objects are named, and the name is visible throughout the system, not just in the creating process.