diff options
author | Dmitry Stogov <dmitry@zend.com> | 2019-05-23 00:20:35 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2019-05-23 00:20:35 +0300 |
commit | fa6a4483e63d87608a839d04c6e1b9eed9a0430f (patch) | |
tree | 427b25840471a43e88a424aa53e81483f5ddc1a4 | |
parent | 96404eb8e223bde0f5f697987a81acb640cc539f (diff) | |
download | php-git-fa6a4483e63d87608a839d04c6e1b9eed9a0430f.tar.gz |
Fixed race condition in opcache restart
-rw-r--r-- | ext/opcache/ZendAccelerator.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 34e4ef0071..302a3c2c72 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -2164,8 +2164,6 @@ static void accel_reset_pcre_cache(void) static void accel_activate(void) { - zend_bool reset_pcre = 0; - if (!ZCG(enabled) || !accel_startup_ok) { return; } @@ -2271,9 +2269,6 @@ static void accel_activate(void) accel_restart_leave(); } } - if (!ZCG(pcre_reseted)) { - reset_pcre = 1; - } zend_shared_alloc_unlock(); } @@ -2282,7 +2277,7 @@ static void accel_activate(void) SHM_PROTECT(); HANDLE_UNBLOCK_INTERRUPTIONS(); - if (ZCSG(last_restart_time) != ZCG(last_restart_time)) { + if (ZCG(accelerator_enabled) && ZCSG(last_restart_time) != ZCG(last_restart_time)) { /* SHM was reinitialized. */ ZCG(last_restart_time) = ZCSG(last_restart_time); @@ -2291,7 +2286,7 @@ static void accel_activate(void) accel_reset_pcre_cache(); ZCG(pcre_reseted) = 0; - } else if (reset_pcre) { + } else if (!ZCG(accelerator_enabled) && !ZCG(pcre_reseted)) { accel_reset_pcre_cache(); ZCG(pcre_reseted) = 1; } |