Skip to content

Commit 94b5119

Browse files
committed
Remove request_started, increase thread safety
1 parent 8696442 commit 94b5119

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

Zend/zend_API.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -735,13 +735,12 @@ void module_destructor(zend_module_entry *module)
735735
clean_module_constants(module->module_number);
736736
}
737737

738-
if (module->request_started && module->request_shutdown_func) {
738+
if (module->request_shutdown_func) {
739739
#if 0
740740
zend_printf("%s: Request shutdown\n",module->name);
741741
#endif
742742
module->request_shutdown_func(module->type, module->module_number);
743743
}
744-
module->request_started=0;
745744
if (module->module_started && module->module_shutdown_func) {
746745
#if 0
747746
zend_printf("%s: Module shutdown\n",module->name);
@@ -764,13 +763,15 @@ void module_destructor(zend_module_entry *module)
764763
/* call request startup for all modules */
765764
int module_registry_request_startup(zend_module_entry *module)
766765
{
767-
if (!module->request_started && module->request_startup_func) {
766+
if (module->request_startup_func) {
768767
#if 0
769768
zend_printf("%s: Request startup\n",module->name);
770769
#endif
771-
module->request_startup_func(module->type, module->module_number);
770+
if (module->request_startup_func(module->type, module->module_number)==FAILURE) {
771+
zend_error(E_WARNING, "request_startup() for %s module failed", module->name);
772+
exit(1);
773+
}
772774
}
773-
module->request_started=1;
774775
return 0;
775776
}
776777

@@ -782,13 +783,12 @@ int module_registry_cleanup(zend_module_entry *module)
782783
{
783784
switch(module->type) {
784785
case MODULE_PERSISTENT:
785-
if (module->request_started && module->request_shutdown_func) {
786+
if (module->request_shutdown_func) {
786787
#if 0
787788
zend_printf("%s: Request shutdown\n",module->name);
788789
#endif
789790
module->request_shutdown_func(module->type, module->module_number);
790791
}
791-
module->request_started=0;
792792
return 0;
793793
break;
794794
case MODULE_TEMPORARY:

Zend/zend_modules.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#define SHUTDOWN_FUNC_ARGS_PASSTHRU type, module_number
2828
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module
2929

30-
#define STANDARD_MODULE_PROPERTIES_EX 0, 0, 0, NULL, 0
30+
#define STANDARD_MODULE_PROPERTIES_EX 0, 0, NULL, 0
3131

3232
#define STANDARD_MODULE_PROPERTIES \
3333
NULL, NULL, STANDARD_MODULE_PROPERTIES_EX
@@ -47,7 +47,7 @@ struct _zend_module_entry {
4747
void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
4848
int (*global_startup_func)(void);
4949
int (*global_shutdown_func)(void);
50-
int request_started, module_started;
50+
int module_started;
5151
unsigned char type;
5252
void *handle;
5353
int module_number;

0 commit comments

Comments
 (0)