sem_get
(PHP 4, PHP 5, PHP 7, PHP 8)
Get a semaphore id
Description
sem_get() returns an id that can be used to access the System V semaphore with the given key.
A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.
If key is 0, a new private semaphore is created for each call to sem_get().
Parameters
keymax_acquireThe number of processes that can acquire the semaphore simultaneously is set to
max_acquire.permissionsThe semaphore permissions. Actually this value is set only if the process finds it is the only process currently attached to the semaphore.
auto_releaseSpecifies if the semaphore should be automatically released on request shutdown.
Return Values
Returns a positive semaphore identifier on success, or false on error.
Changelog
| Version | Description |
|---|---|
| 8.0.0 | On success, this function returns a SysvSemaphore instance now; previously, a resource was returned. |
| 8.0.0 | The type of auto_release has been changed from int to bool. |
Notes
When using sem_get() to access a semaphore created outside PHP, note that the semaphore must have been created as a set of 3 semaphores (for example, by specifying 3 as the nsems parameter when calling the C semget() function), otherwise PHP will be unable to access the semaphore.
If auto_release is enabled, the acquisitions held by a SysvSemaphore object are also released as soon as the object is freed, for example when the variable holding it is unset, overwritten or goes out of scope, not only on request shutdown. Keep a reference to the object for as long as the semaphore needs to stay acquired.