summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-01-16 21:03:49 +0000
committerZeev Suraski <zeev@php.net>2000-01-16 21:03:49 +0000
commitec386cc9fde380aaa4af823e75950365d8bb98da (patch)
treedb5d70c7d4e3d76e90c0e92e532b6e8af2053ea1
parentee08b81aabcbc65c9b10b535f028b3654b732e4a (diff)
downloadphp-git-ec386cc9fde380aaa4af823e75950365d8bb98da.tar.gz
- 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!
-rw-r--r--ext/odbc/php_odbc.c10
-rw-r--r--ext/session/session.c29
-rw-r--r--main/main.c35
-rw-r--r--main/php_globals.h9
4 files changed, 24 insertions, 59 deletions
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 */
/*