1
0
mirror of https://github.com/php/php-src.git synced 2026-04-20 06:21:12 +02:00

Ability to disable O+ per process (or process pool)

This commit is contained in:
Dmitry Stogov
2013-02-25 10:35:59 +04:00
parent 0c220d6fb3
commit ce69b86927
2 changed files with 23 additions and 21 deletions

View File

@@ -191,7 +191,7 @@ static ZEND_INI_MH(accel_include_path_on_modify)
if (ZCG(include_path) && *ZCG(include_path)) {
ZCG(include_path_len) = new_value_length;
if (accel_startup_ok &&
if (ZCG(enabled) && accel_startup_ok &&
(ZCG(counted) || ZCSG(accelerator_enabled)) &&
!zend_accel_hash_is_full(&ZCSG(include_paths))) {
@@ -900,7 +900,7 @@ char *accel_make_persistent_key_ex(zend_file_handle *file_handle, int path_lengt
include_path = ZCG(include_path);
include_path_len = ZCG(include_path_len);
if (ZCG(include_path_check) &&
accel_startup_ok &&
ZCG(enabled) && accel_startup_ok &&
(ZCG(counted) || ZCSG(accelerator_enabled)) &&
!zend_accel_hash_is_full(&ZCSG(include_paths))) {
@@ -1291,7 +1291,7 @@ static zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int
int from_shared_memory; /* if the script we've got is stored in SHM */
if (!file_handle->filename ||
!accel_startup_ok ||
!ZCG(enabled) || !accel_startup_ok ||
(!ZCG(counted) && !ZCSG(accelerator_enabled)) ||
CG(interactive) ||
(ZCSG(restart_in_progress) && accel_restart_is_active(TSRMLS_C))) {
@@ -1597,7 +1597,7 @@ static char *accel_php_resolve_path(const char *filename, int filename_length, c
/* zend_stream_open_function() replacement for PHP 5.2 */
static int persistent_stream_open_function(const char *filename, zend_file_handle *handle TSRMLS_DC)
{
if (accel_startup_ok &&
if (ZCG(enabled) && accel_startup_ok &&
(ZCG(counted) || ZCSG(accelerator_enabled)) &&
!CG(interactive) &&
!ZCSG(restart_in_progress)) {
@@ -1693,7 +1693,7 @@ static int persistent_stream_open_function(const char *filename, zend_file_handl
/* zend_stream_open_function() replacement for PHP 5.3 and above */
static int persistent_stream_open_function(const char *filename, zend_file_handle *handle TSRMLS_DC)
{
if (accel_startup_ok &&
if (ZCG(enabled) && accel_startup_ok &&
(ZCG(counted) || ZCSG(accelerator_enabled)) &&
!CG(interactive) &&
!ZCSG(restart_in_progress)) {
@@ -1758,7 +1758,7 @@ static int persistent_stream_open_function(const char *filename, zend_file_handl
/* zend_resolve_path() replacement for PHP 5.3 and above */
static char* persistent_zend_resolve_path(const char *filename, int filename_len TSRMLS_DC)
{
if (accel_startup_ok &&
if (ZCG(enabled) && accel_startup_ok &&
(ZCG(counted) || ZCSG(accelerator_enabled)) &&
!CG(interactive) &&
!ZCSG(restart_in_progress)) {
@@ -1864,7 +1864,7 @@ static void accel_activate(void)
{
TSRMLS_FETCH();
if (!accel_startup_ok) {
if (!ZCG(enabled) || !accel_startup_ok) {
return;
}
@@ -2116,7 +2116,7 @@ static void accel_deactivate(void)
*/
TSRMLS_FETCH();
if (!accel_startup_ok) {
if (!ZCG(enabled) || !accel_startup_ok) {
return;
}
@@ -2442,7 +2442,7 @@ static void accel_shutdown(zend_extension *extension)
zend_accel_blacklist_shutdown(&accel_blacklist);
if (!accel_startup_ok) {
if (!ZCG(enabled) || !accel_startup_ok) {
accel_free_ts_resources();
return;
}
@@ -2528,7 +2528,7 @@ static void accel_op_array_handler(zend_op_array *op_array)
{
TSRMLS_FETCH();
if (accel_startup_ok && ZCSG(accelerator_enabled)) {
if (ZCG(enabled) && accel_startup_ok && ZCSG(accelerator_enabled)) {
zend_optimizer(op_array TSRMLS_CC);
}
}

View File

@@ -342,7 +342,7 @@ static ZEND_MINIT_FUNCTION(zend_accelerator)
void zend_accel_override_file_functions(TSRMLS_D)
{
zend_function *old_function;
if (accel_startup_ok && ZCG(accel_directives).file_override_enabled) {
if (ZCG(enabled) && accel_startup_ok && ZCG(accel_directives).file_override_enabled) {
/* override file_exists */
if (zend_hash_find(CG(function_table), "file_exists", sizeof("file_exists"), (void **)&old_function) == SUCCESS) {
old_function->internal_function.handler = accel_file_exists;
@@ -368,7 +368,7 @@ void zend_accel_info(ZEND_MODULE_INFO_FUNC_ARGS)
{
php_info_print_table_start();
if (accel_startup_ok && ZCSG(accelerator_enabled)) {
if (ZCG(enabled) && accel_startup_ok && ZCSG(accelerator_enabled)) {
php_info_print_table_row(2, "Opcode Caching", "Up and Running");
} else {
php_info_print_table_row(2, "Opcode Caching", "Disabled");
@@ -378,11 +378,13 @@ void zend_accel_info(ZEND_MODULE_INFO_FUNC_ARGS)
} else {
php_info_print_table_row(2, "Optimization", "Disabled");
}
if (!accel_startup_ok || zps_api_failure_reason) {
php_info_print_table_row(2, "Startup Failed", zps_api_failure_reason);
} else {
php_info_print_table_row(2, "Startup", "OK");
php_info_print_table_row(2, "Shared memory model", zend_accel_get_shared_model());
if (ZCG(enabled)) {
if (!accel_startup_ok || zps_api_failure_reason) {
php_info_print_table_row(2, "Startup Failed", zps_api_failure_reason);
} else {
php_info_print_table_row(2, "Startup", "OK");
php_info_print_table_row(2, "Shared memory model", zend_accel_get_shared_model());
}
}
php_info_print_table_end();
@@ -418,7 +420,7 @@ static zval* accelerator_get_scripts(TSRMLS_D)
struct timeval exec_time;
struct timeval fetch_time;
if (!accel_startup_ok || !ZCSG(accelerator_enabled) || accelerator_shm_read_lock(TSRMLS_C) != SUCCESS) {
if (!ZCG(enabled) || !accel_startup_ok || !ZCSG(accelerator_enabled) || accelerator_shm_read_lock(TSRMLS_C) != SUCCESS) {
return 0;
}
@@ -464,14 +466,14 @@ static ZEND_FUNCTION(accelerator_get_status)
/* keep the compiler happy */
(void)ht; (void)return_value_ptr; (void)this_ptr; (void)return_value_used;
if (!accel_startup_ok || !ZCSG(accelerator_enabled)) {
if (!ZCG(enabled) || !accel_startup_ok || !ZCSG(accelerator_enabled)) {
RETURN_FALSE;
}
array_init(return_value);
/* Trivia */
add_assoc_bool(return_value, "accelerator_enabled", 1 /*accel_startup_ok && ZCSG(accelerator_enabled)*/);
add_assoc_bool(return_value, "accelerator_enabled", 1 /*ZCG(enabled) && accel_startup_ok && ZCSG(accelerator_enabled)*/);
add_assoc_bool(return_value, "cache_full", ZSMMG(memory_exhausted));
/* Memory usage statistics */
@@ -576,7 +578,7 @@ static ZEND_FUNCTION(accelerator_reset)
/* keep the compiler happy */
(void)ht; (void)return_value_ptr; (void)this_ptr; (void)return_value_used;
if (!accel_startup_ok || !ZCSG(accelerator_enabled)) {
if (!ZCG(enabled) || !accel_startup_ok || !ZCSG(accelerator_enabled)) {
RETURN_FALSE;
}