diff options
author | Andreas Fischer <bantu@phpbb.com> | 2012-12-05 10:03:29 +0100 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2012-12-05 10:03:29 +0100 |
commit | 4f947ebb47e4236c4bc3e2474eb49069d67d91e1 (patch) | |
tree | c7efb4d423b02d6f5c2bc3761118c774768191ed /phpBB/includes | |
parent | 40343006a97a5592ebfb027ce6828ca64e877d4e (diff) | |
parent | 819206a336f812cb1de3d0a5febd073f00c141ec (diff) | |
download | forums-4f947ebb47e4236c4bc3e2474eb49069d67d91e1.tar forums-4f947ebb47e4236c4bc3e2474eb49069d67d91e1.tar.gz forums-4f947ebb47e4236c4bc3e2474eb49069d67d91e1.tar.bz2 forums-4f947ebb47e4236c4bc3e2474eb49069d67d91e1.tar.xz forums-4f947ebb47e4236c4bc3e2474eb49069d67d91e1.zip |
Merge branch 'develop-olympus' into develop
* develop-olympus:
[ticket/10602] Avoid a race condition.
[ticket/10602] Use last_queue_run for its intended purpose.
Conflicts:
phpBB/includes/functions_messenger.php
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/functions_messenger.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index 56fc7e628f..a18aeddabd 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -661,14 +661,21 @@ class queue $lock = new phpbb_lock_flock($this->cache_file); $lock->acquire(); - set_config('last_queue_run', time(), true); - - if (!file_exists($this->cache_file) || filemtime($this->cache_file) > time() - $config['queue_interval']) + // avoid races, check file existence once + $have_cache_file = file_exists($this->cache_file); + if (!$have_cache_file || $config['last_queue_run'] > time() - $config['queue_interval']) { + if (!$have_cache_file) + { + set_config('last_queue_run', time(), true); + } + $lock->release(); return; } + set_config('last_queue_run', time(), true); + include($this->cache_file); foreach ($this->queue_data as $object => $data_ary) |