From: Zeev Suraski Date: Sun, 16 Jan 2000 21:03:49 +0000 (+0000) Subject: - Remove the pre-request-shutdown hooks, they should no longer be necessary. X-Git-Tag: BEFORE_SAPIFICATION_FEB_10_2000~214 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ec386cc9fde380aaa4af823e75950365d8bb98da;p=php - Remove the pre-request-shutdown hooks, they should no longer be necessary. The session module may not work due to an unknown (and until now, IMO, misdiagnosed) problem, if it does, please report it! --- diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index aaa31503fc..a8944fb06b 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -410,7 +410,9 @@ PHP_MINIT_FUNCTION(odbc) return SUCCESS; } -void _php_odbc_shutdown(void *data) + +#if 0 +static void _php_odbc_shutdown(void *data) { ELS_FETCH(); @@ -421,6 +423,8 @@ void _php_odbc_shutdown(void *data) zend_hash_apply(&EG(regular_list), (int (*)(void *)) _odbc_stmt_cleanup); } +#endif + PHP_RINIT_FUNCTION(odbc) { @@ -429,7 +433,9 @@ PHP_RINIT_FUNCTION(odbc) ODBCG(defConn) = -1; ODBCG(num_links) = ODBCG(num_persistent); - php_register_pre_request_shutdown(_php_odbc_shutdown, NULL); + /* This should no longer be necessary, as hash_apply() is reentrant + * php_register_pre_request_shutdown(_php_odbc_shutdown, NULL); + */ return SUCCESS; } diff --git a/ext/session/session.c b/ext/session/session.c index 5d7bdb77a2..4608e8e49e 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -101,6 +101,7 @@ const static ps_serializer ps_serializers[] = { PHP_MINIT_FUNCTION(session); PHP_RINIT_FUNCTION(session); PHP_MSHUTDOWN_FUNCTION(session); +PHP_RSHUTDOWN_FUNCTION(session); PHP_MINFO_FUNCTION(session); static void php_rinit_session_globals(PSLS_D); @@ -110,7 +111,7 @@ zend_module_entry session_module_entry = { "Session Management", session_functions, PHP_MINIT(session), PHP_MSHUTDOWN(session), - PHP_RINIT(session), NULL, + PHP_RINIT(session), PHP_RSHUTDOWN(session), PHP_MINFO(session), STANDARD_MODULE_PROPERTIES, }; @@ -1178,17 +1179,6 @@ static void php_rshutdown_session_globals(PSLS_D) } -void _php_session_shutdown(void *data) -{ - PSLS_FETCH(); - - if(PS(nr_open_sessions) > 0) { - _php_session_save_current_state(PSLS_C); - PS(nr_open_sessions)--; - } - php_rshutdown_session_globals(PSLS_C); -} - PHP_RINIT_FUNCTION(session) { PSLS_FETCH(); @@ -1206,11 +1196,24 @@ PHP_RINIT_FUNCTION(session) _php_session_start(PSLS_C); } - php_register_pre_request_shutdown(_php_session_shutdown, NULL); + return SUCCESS; +} + +PHP_RSHUTDOWN_FUNCTION(session) +{ + PSLS_FETCH(); + + if(PS(nr_open_sessions) > 0) { + _php_session_save_current_state(PSLS_C); + PS(nr_open_sessions)--; + } + php_rshutdown_session_globals(PSLS_C); return SUCCESS; } + + PHP_MINIT_FUNCTION(session) { #ifdef ZTS diff --git a/main/main.c b/main/main.c index 126e5ff121..d510a8dfbb 100644 --- a/main/main.c +++ b/main/main.c @@ -654,39 +654,6 @@ static void php_message_handler_for_zend(long message, void *data) } } -static void php_start_request_hook(void *data) -{ - php_request_hook *ptr = (php_request_hook *) data; - - ptr->func(ptr->userdata); -} - -static void php_execute_pre_request_shutdown(PLS_D) -{ - if (PG(pre_request_shutdown_ok)) { - zend_llist_apply(&PG(ll_pre_request_shutdown), php_start_request_hook); - zend_llist_destroy(&PG(ll_pre_request_shutdown)); - PG(pre_request_shutdown_ok) = 0; - } -} - - -void php_register_pre_request_shutdown(void (*func)(void *), void *userdata) -{ - php_request_hook ptr; - PLS_FETCH(); - - if (!PG(pre_request_shutdown_ok)) { - zend_llist_init(&PG(ll_pre_request_shutdown), sizeof(php_request_hook), NULL, 0); - PG(pre_request_shutdown_ok) = 1; - } - - ptr.func = func; - ptr.userdata = userdata; - - zend_llist_add_element(&PG(ll_pre_request_shutdown), &ptr); -} - int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC) { @@ -773,8 +740,6 @@ void php_request_shutdown(void *dummy) SLS_FETCH(); PLS_FETCH(); - php_execute_pre_request_shutdown(PLS_C); - sapi_send_headers(); php_end_ob_buffering(SG(request_info).headers_only?0:1); diff --git a/main/php_globals.h b/main/php_globals.h index f18f98249a..809b36ae53 100644 --- a/main/php_globals.h +++ b/main/php_globals.h @@ -95,18 +95,9 @@ struct _php_core_globals { long max_execution_time; unsigned char header_is_being_sent; - - zend_llist ll_pre_request_shutdown; - - zend_bool pre_request_shutdown_ok; }; -typedef struct { - void (*func)(void *); - void *userdata; -} php_request_hook; - #endif /* _PHP_GLOBALS_H */ /*