In this recent post to his site Jonathan Hill takes a look at the PHP semaphore extension and talks about some of the issues he's had with it.
He lists five different pain points he discovered when trying to use the extension:
- Lack of a true Semaphore
- Undefined error handling
- Undefined behavior of sem_get()
- Cannot disable semaphore auto-releasing
- A semaphore may be deleted when other processes are waiting to acquire it
The semaphore extension provides a PHP-based wrapper for the System V IPC family of functions (including semaphores, shared memory and inter-process messaging).