Function

dispatch_semaphore_create

Creates new counting semaphore with an initial value.

Declaration

dispatch_semaphore_t dispatch_semaphore_create(long value);

Parameters

value

The starting value for the semaphore. Do not pass a value less than zero.

Return Value

The newly created semaphore.

Discussion

Passing zero for the value is useful for when two threads need to reconcile the completion of a particular event. Passing a value greater than zero is useful for managing a finite pool of resources, where the pool size is equal to the value.

When your application no longer needs the semaphore, it should call dispatch_release to release its reference to the semaphore object and ultimately free its memory.