From: Dmitry Stogov Date: Wed, 22 May 2019 21:20:35 +0000 (+0300) Subject: Fixed race condition in opcache restart X-Git-Tag: php-7.2.20RC1~34 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fa6a4483e63d87608a839d04c6e1b9eed9a0430f;p=php Fixed race condition in opcache restart --- 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; }