1
0
mirror of https://github.com/php/php-src.git synced 2026-04-22 15:38:49 +02:00

Fixed process synchronisation problem, that may cause crashes after opcache restart

This commit is contained in:
Dmitry Stogov
2016-02-17 13:58:05 +03:00
committed by Anatol Belski
parent 4e527d8201
commit ca779add4d
3 changed files with 17 additions and 5 deletions
+13 -4
View File
@@ -2278,6 +2278,19 @@ static void zend_accel_fast_shutdown(void)
}
#endif
int accel_post_deactivate(void)
{
if (!ZCG(enabled) || !accel_startup_ok) {
return SUCCESS;
}
zend_shared_alloc_safe_unlock(); /* be sure we didn't leave cache locked */
accel_unlock_all();
ZCG(counted) = 0;
return SUCCESS;
}
static void accel_deactivate(void)
{
/* ensure that we restore function_table and class_table
@@ -2294,10 +2307,6 @@ static void accel_deactivate(void)
return;
}
zend_shared_alloc_safe_unlock(); /* be sure we didn't leave cache locked */
accel_unlock_all();
ZCG(counted) = 0;
#if !ZEND_DEBUG
if (ZCG(accel_directives).fast_shutdown && is_zend_mm()) {
zend_accel_fast_shutdown();
+1
View File
@@ -318,6 +318,7 @@ extern zend_accel_globals accel_globals;
extern char *zps_api_failure_reason;
void accel_shutdown(void);
int accel_post_deactivate(void);
void zend_accel_schedule_restart(zend_accel_restart_reason reason);
void zend_accel_schedule_restart_if_necessary(zend_accel_restart_reason reason);
accel_time_t zend_get_file_handle_timestamp(zend_file_handle *file_handle, size_t *size);
+3 -1
View File
@@ -516,7 +516,9 @@ static zend_module_entry accel_module_entry = {
NULL,
zend_accel_info,
ACCELERATOR_VERSION "FE",
STANDARD_MODULE_PROPERTIES
NO_MODULE_GLOBALS,
accel_post_deactivate,
STANDARD_MODULE_PROPERTIES_EX
};
int start_accel_module(void)