mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/10103] Convert the rest of the tree to flock class.
PHPBB3-10103
This commit is contained in:
parent
f72e435759
commit
318140b4d6
2 changed files with 16 additions and 8 deletions
16
phpBB/includes/cache/driver/file.php
vendored
16
phpBB/includes/cache/driver/file.php
vendored
|
@ -653,10 +653,11 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
|
|||
|
||||
$file = "{$this->cache_dir}$filename.$phpEx";
|
||||
|
||||
$lock = new phpbb_lock_flock($file);
|
||||
$lock->acquire();
|
||||
|
||||
if ($handle = @fopen($file, 'wb'))
|
||||
{
|
||||
@flock($handle, LOCK_EX);
|
||||
|
||||
// File header
|
||||
fwrite($handle, '<' . '?php exit; ?' . '>');
|
||||
|
||||
|
@ -697,7 +698,6 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
|
|||
fwrite($handle, $data);
|
||||
}
|
||||
|
||||
@flock($handle, LOCK_UN);
|
||||
fclose($handle);
|
||||
|
||||
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);
|
||||
|
||||
return true;
|
||||
$rv = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$rv = false;
|
||||
}
|
||||
|
||||
return false;
|
||||
$lock->release();
|
||||
|
||||
return $rv;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -58,6 +58,9 @@ class phpbb_template_compile
|
|||
*/
|
||||
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');
|
||||
$destination_handle = @fopen($compiled_file, 'wb');
|
||||
|
||||
|
@ -66,16 +69,15 @@ class phpbb_template_compile
|
|||
return false;
|
||||
}
|
||||
|
||||
@flock($destination_handle, LOCK_EX);
|
||||
|
||||
$this->compile_stream_to_stream($source_handle, $destination_handle);
|
||||
|
||||
@fclose($source_handle);
|
||||
@flock($destination_handle, LOCK_UN);
|
||||
@fclose($destination_handle);
|
||||
|
||||
phpbb_chmod($compiled_file, CHMOD_READ | CHMOD_WRITE);
|
||||
|
||||
$lock->release();
|
||||
|
||||
clearstatcache();
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Add table
Reference in a new issue