sem_remove
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
sem_remove — Remove a semaphore
说明
sem_remove() removes the given semaphore.
After removing the semaphore, it is no longer accessible.
返回值
成功时返回 true
, 或者在失败时返回 false
。
更新日志
版本 | 说明 |
---|---|
8.0.0 |
semaphore expects a SysvSemaphore
instance now; previously, a resource was expected.
|
参见
- sem_get() - Get a semaphore id
- sem_release() - Release a semaphore
- sem_acquire() - Acquire a semaphore

User Contributed Notes 1 note
donotcallme at iwillcallyou dot com ¶
8 years ago
sem_remove() shouldn't be part of a normal cleanup/teardown and should be called very rarely due to bugs in the implementation.
It doesn't seem to hurt to leave semaphores lying around and is likely to be more performance-friendly to do so. If you are concerned about having too many semaphores floating around for an application (e.g. a file cache that uses ftok()), you can use some modulus arithmetic and simple addition to create a limited range of values for your semaphores off in the middle of nowhere. For example, ftok() % 101 + 0xBADBEEF. Be sure to replace 0xBADBEEF with your own random value. The example limits the range to 101 semaphores. 101 is a prime number - so if you want more or less, be sure to replace it with a prime number since primes theoretically help distribute values more evenly.