Join 4,000+ others and never miss out on new tips, tutorials, and more.
Latest version:
pecl install openswoole-22.1.2 | composer require openswoole/core:22.1.5
<?php OpenSwoole\Atomic->wait ( float $timeout = 1.0 )
Wait on the counter for $timeout
if no wakeup
from other processes.
The Atomic
can be used as a Lock
for syncing between mutliple processes.
Put the process into wait mode if the value of OpenSwoole Atomic
is 0
. The other process can wakeup
the processes with wait
status.
Wait on the counter for $timeout
ms if no wakeup
from other processes.
<?php
$lock = new OpenSwoole\Atomic;
if (pcntl_fork() > 0) {
echo "master start\n";
$lock->wait(1.5);
echo "master end\n";
} else {
echo "child start\n";
sleep(1);
$lock->wakeup();
echo "child end\n";
}