Unit 'exec' Package
[Overview][Constants][Types][Procedures and functions][Variables][Index] [#morphunits]

ObtainSemaphoreShared

Gain access to a semaphore in shared mode

Declaration

Source position: exec.pas line 2127

procedure ObtainSemaphoreShared(

  sigSem: PSignalSemaphore

);

Arguments

sigSem

  

An initialized signal semaphore structure

Description

A lock on a signal semaphore may either be exclusive, or shared. Exclusive locks are granted by the ObtainSemaphore() and AttemptSemaphore() functions. Shared locks are granted by ObtainSemaphoreShared(). Calls may be nested.

Any number of tasks may simultaneously hold a shared lock on a semaphore. Only one task may hold an exclusive lock. A typical application is a list that is often read, but only occasionally written to.

Any exlusive locker will be held off until all shared lockers release the semaphore. Likewise, if an exlusive lock is held, all potential shared lockers will block until the exclusive lock is released. All shared lockers are restarted at the same time.

A task owning a shared lock must not attempt to get an exclusive lock on the same semaphore.

See also

ObtainSemaphoreList

  

Get a List of semaphores

InitSemaphore

  

Initialize a signal semaphore

ReleaseSemaphore

  

Make signal semaphore available to others

AttemptSemaphore

  

Try to obtain a Semaphore without blocking

ObtainSemaphore

  

Gain exclusive access to a semaphore

Procure

  

Asynchron locking of a semaphore

Vacate

  

Release a bidMessage from Procure()


Documentation generated on: 2021-07-30