%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/vendor/amphp/sync/src/ |
Upload File : |
<?php
namespace Amp\Sync;
use Amp\Promise;
use function Amp\call;
class SemaphoreMutex implements Mutex
{
/** @var Semaphore */
private $semaphore;
/**
* @param Semaphore $semaphore A semaphore with a single lock.
*/
public function __construct(Semaphore $semaphore)
{
$this->semaphore = $semaphore;
}
/** {@inheritdoc} */
public function acquire(): Promise
{
return call(function (): \Generator {
/** @var \Amp\Sync\Lock $lock */
$lock = yield $this->semaphore->acquire();
if ($lock->getId() !== 0) {
$lock->release();
throw new \Error("Cannot use a semaphore with more than a single lock");
}
return $lock;
});
}
}