| 1 | <?php |
||
| 18 | class Semaphore |
||
| 19 | { |
||
| 20 | /** |
||
| 21 | * @param int $semaphoreID |
||
| 22 | * @return null|resource |
||
| 23 | */ |
||
| 24 | public static function fetch($semaphoreID) |
||
| 25 | { |
||
| 26 | global $useSemaphores, $semaphoreModulus; |
||
| 27 | if (!isset($useSemaphores)) $useSemaphores = false; |
||
| 28 | if ($useSemaphores == false) return null; |
||
| 29 | if (!isset($semaphoreModulus)) $semaphoreModulus = 10; |
||
| 30 | |||
| 31 | $sem = sem_get($semaphoreID % $semaphoreModulus); |
||
| 32 | if (!sem_acquire($sem)) return null; |
||
| 33 | return $sem; |
||
| 34 | } |
||
| 35 | |||
| 36 | /** |
||
| 37 | * @param null|resource $semaphoreResource |
||
| 38 | */ |
||
| 39 | public static function release($semaphoreResource) |
||
| 43 | } |
||
| 44 |