Fixed race condition in opcache restart

This commit is contained in:
Dmitry Stogov 2019-05-23 00:20:35 +03:00
parent 96404eb8e2
commit fa6a4483e6

View File

@ -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;
}