]> granicus.if.org Git - php/commitdiff
Remove request_started, increase thread safety
authorZeev Suraski <zeev@php.net>
Fri, 26 Nov 1999 13:53:18 +0000 (13:53 +0000)
committerZeev Suraski <zeev@php.net>
Fri, 26 Nov 1999 13:53:18 +0000 (13:53 +0000)
Zend/zend_API.c
Zend/zend_modules.h

index 81bf12a89440b3c350ab3a13c635d2a4e0990ee1..38c0135d9a153a10c3ea7866340caa5a1a55d064 100644 (file)
@@ -735,13 +735,12 @@ void module_destructor(zend_module_entry *module)
                clean_module_constants(module->module_number);
        }
 
-       if (module->request_started && module->request_shutdown_func) {
+       if (module->request_shutdown_func) {
 #if 0
                zend_printf("%s:  Request shutdown\n",module->name);
 #endif
                module->request_shutdown_func(module->type, module->module_number);
        }
-       module->request_started=0;
        if (module->module_started && module->module_shutdown_func) {
 #if 0
                zend_printf("%s:  Module shutdown\n",module->name);
@@ -764,13 +763,15 @@ void module_destructor(zend_module_entry *module)
 /* call request startup for all modules */
 int module_registry_request_startup(zend_module_entry *module)
 {
-       if (!module->request_started && module->request_startup_func) {
+       if (module->request_startup_func) {
 #if 0
                zend_printf("%s:  Request startup\n",module->name);
 #endif
-               module->request_startup_func(module->type, module->module_number);
+               if (module->request_startup_func(module->type, module->module_number)==FAILURE) {
+                       zend_error(E_WARNING, "request_startup() for %s module failed", module->name);
+                       exit(1);
+               }
        }
-       module->request_started=1;
        return 0;
 }
 
@@ -782,13 +783,12 @@ int module_registry_cleanup(zend_module_entry *module)
 {
        switch(module->type) {
                case MODULE_PERSISTENT:
-                       if (module->request_started && module->request_shutdown_func) {
+                       if (module->request_shutdown_func) {
 #if 0
                                zend_printf("%s:  Request shutdown\n",module->name);
 #endif
                                module->request_shutdown_func(module->type, module->module_number);
                        }
-                       module->request_started=0;
                        return 0;
                        break;
                case MODULE_TEMPORARY:
index 71f7400cf26988f1c5b18e54948298016aa6d765..e028ef2e4f9b862bc51dd09444c1b1dc6d8150af 100644 (file)
@@ -27,7 +27,7 @@
 #define SHUTDOWN_FUNC_ARGS_PASSTHRU type, module_number
 #define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module
 
-#define STANDARD_MODULE_PROPERTIES_EX 0, 0, 0, NULL, 0
+#define STANDARD_MODULE_PROPERTIES_EX 0, 0, NULL, 0
 
 #define STANDARD_MODULE_PROPERTIES \
        NULL, NULL, STANDARD_MODULE_PROPERTIES_EX
@@ -47,7 +47,7 @@ struct _zend_module_entry {
        void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
        int (*global_startup_func)(void);
        int (*global_shutdown_func)(void);
-       int request_started, module_started;
+       int module_started;
        unsigned char type;
        void *handle;
        int module_number;