[ticket/10103] Convert the rest of the tree to flock class.

PHPBB3-10103
This commit is contained in:
Oleg Pudeyev 2012-12-04 02:26:55 -05:00
parent f72e435759
commit 318140b4d6
2 changed files with 16 additions and 8 deletions

View file

@ -653,10 +653,11 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
$file = "{$this->cache_dir}$filename.$phpEx"; $file = "{$this->cache_dir}$filename.$phpEx";
$lock = new phpbb_lock_flock($file);
$lock->acquire();
if ($handle = @fopen($file, 'wb')) if ($handle = @fopen($file, 'wb'))
{ {
@flock($handle, LOCK_EX);
// File header // File header
fwrite($handle, '<' . '?php exit; ?' . '>'); fwrite($handle, '<' . '?php exit; ?' . '>');
@ -697,7 +698,6 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
fwrite($handle, $data); fwrite($handle, $data);
} }
@flock($handle, LOCK_UN);
fclose($handle); fclose($handle);
if (!function_exists('phpbb_chmod')) if (!function_exists('phpbb_chmod'))
@ -708,10 +708,16 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
phpbb_chmod($file, CHMOD_READ | CHMOD_WRITE); phpbb_chmod($file, CHMOD_READ | CHMOD_WRITE);
return true; $rv = true;
}
else
{
$rv = false;
} }
return false; $lock->release();
return $rv;
} }
/** /**

View file

@ -58,6 +58,9 @@ class phpbb_template_compile
*/ */
public function compile_file_to_file($source_file, $compiled_file) public function compile_file_to_file($source_file, $compiled_file)
{ {
$lock = new phpbb_lock_flock($compiled_file);
$lock->acquire();
$source_handle = @fopen($source_file, 'rb'); $source_handle = @fopen($source_file, 'rb');
$destination_handle = @fopen($compiled_file, 'wb'); $destination_handle = @fopen($compiled_file, 'wb');
@ -66,16 +69,15 @@ class phpbb_template_compile
return false; return false;
} }
@flock($destination_handle, LOCK_EX);
$this->compile_stream_to_stream($source_handle, $destination_handle); $this->compile_stream_to_stream($source_handle, $destination_handle);
@fclose($source_handle); @fclose($source_handle);
@flock($destination_handle, LOCK_UN);
@fclose($destination_handle); @fclose($destination_handle);
phpbb_chmod($compiled_file, CHMOD_READ | CHMOD_WRITE); phpbb_chmod($compiled_file, CHMOD_READ | CHMOD_WRITE);
$lock->release();
clearstatcache(); clearstatcache();
return true; return true;