aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2012-12-05 10:03:29 +0100
committerAndreas Fischer <bantu@phpbb.com>2012-12-05 10:03:29 +0100
commit4f947ebb47e4236c4bc3e2474eb49069d67d91e1 (patch)
treec7efb4d423b02d6f5c2bc3761118c774768191ed /phpBB/includes
parent40343006a97a5592ebfb027ce6828ca64e877d4e (diff)
parent819206a336f812cb1de3d0a5febd073f00c141ec (diff)
downloadforums-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.php13
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)