in src/shipit/ShipItScopedFlock.php [71:93]
private function __construct(
private string $path,
private resource $fp,
private ShipItScopedFlockOperation $constructBehavior,
private ShipItScopedFlockOperation $destructBehavior,
) {
switch ($constructBehavior) {
case ShipItScopedFlockOperation::MAKE_EXCLUSIVE:
$this->debugWrite('Acquiring exclusive lock...', self::DEBUG_EXCLUSIVE);
break;
case ShipItScopedFlockOperation::MAKE_SHARED:
$this->debugWrite('Acquiring shared lock...', self::DEBUG_SHARED);
break;
default:
throw new \Exception('Invalid lock operation');
}
$flock_result = PHP\flock($fp, $constructBehavior);
if (!$flock_result) {
throw new \Exception('Failed to acquire lock');
}
}