]> granicus.if.org Git - php/commitdiff
- Remove the pre-request-shutdown hooks, they should no longer be necessary.
authorZeev Suraski <zeev@php.net>
Sun, 16 Jan 2000 21:03:49 +0000 (21:03 +0000)
committerZeev Suraski <zeev@php.net>
Sun, 16 Jan 2000 21:03:49 +0000 (21:03 +0000)
The session module may not work due to an unknown (and until now, IMO, misdiagnosed) problem,
if it does, please report it!

ext/odbc/php_odbc.c
ext/session/session.c
main/main.c
main/php_globals.h

index aaa31503fcb0c7e73b0a1b479e52e5b9c684169e..a8944fb06be982512abbb878e5e36ded3d43274c 100644 (file)
@@ -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;
 }
index 5d7bdb77a26eefc808248426273758317347c81d..4608e8e49ec85c9969ca88fbdf3843a9c2323a5c 100644 (file)
@@ -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
index 126e5ff121fe31488c41c583dba7cefbf42d5b96..d510a8dfbbb30b0c4b4bbd3c6245b691c260498e 100644 (file)
@@ -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);
 
index f18f98249a9fdb45d3799094086b80c0ed4c2698..809b36ae53b30b06d833705fab5d00c8fa331229 100644 (file)
@@ -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 */
 
 /*