$lockResource = fopen($this->logFileUrl . '.lock', 'w+');
$exclusiveNonBlockingLockResult = flock($lockResource, LOCK_EX | LOCK_NB);
if ($exclusiveNonBlockingLockResult === false) {
// someone else is on it
return;
}
// do something only this process is supossed to do...
if (!flock($setupLockResource, LOCK_UN)) {
throw new \RuntimeException('failed to release lock');
}