Join 4,000+ others and never miss out on new tips, tutorials, and more.
Latest version:
pecl install openswoole-25.2.0 | 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";
}