diff --git a/src/Symfony/Component/Lock/Store/FlockStore.php b/src/Symfony/Component/Lock/Store/FlockStore.php index d0317358e89a5..5c5baee29a91d 100644 --- a/src/Symfony/Component/Lock/Store/FlockStore.php +++ b/src/Symfony/Component/Lock/Store/FlockStore.php @@ -79,12 +79,12 @@ private function lock(Key $key, $blocking) // Silence error reporting set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); - if (!$handle = fopen($fileName, 'r')) { + if (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) { if ($handle = fopen($fileName, 'x')) { chmod($fileName, 0444); - } elseif (!$handle = fopen($fileName, 'r')) { + } elseif (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) { usleep(100); // Give some time for chmod() to complete - $handle = fopen($fileName, 'r'); + $handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r'); } } restore_error_handler();