Join 4,000+ others and never miss out on new tips, tutorials, and more.
4.x is outdated, please check the latest version 25.x
Latest version:
pecl install openswoole-25.2.0
<?php Swoole\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 Swoole 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 Swoole\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";
}