private function __construct()

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');
    }
  }