You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by do...@hyperreal.org on 1999/01/28 00:37:33 UTC
cvs commit: modperl/src/modules/perl mod_perl.c mod_perl.h perl_config.c
dougm 99/01/27 15:37:32
Modified: src/modules/perl mod_perl.c mod_perl.h perl_config.c
Log:
Gerald's PERL_STARTUP_DONE patch
Revision Changes Path
1.75 +15 -7 modperl/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /export/home/cvs/modperl/src/modules/perl/mod_perl.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- mod_perl.c 1999/01/27 20:16:36 1.74
+++ mod_perl.c 1999/01/27 23:37:29 1.75
@@ -529,7 +529,7 @@
dstr = NULL;
#endif
- if(PERL_RUNNING()) {
+ if(PERL_RUNNING() && PERL_STARTUP_IS_DONE) {
saveINC;
mp_check_version();
}
@@ -664,12 +664,20 @@
GvIMPORTED_CV_on(exitgp);
}
- if(PERL_STARTUP_DONE_CHECK && !getenv("PERL_STARTUP_DONE")) {
- MP_TRACE_g(fprintf(stderr,
- "mod_perl: PerlModule,PerlRequire postponed\n"));
- my_setenv("PERL_STARTUP_DONE", "1");
- saveINC;
- return;
+ if(PERL_STARTUP_DONE_CHECK) {
+ int psd = getenv("PERL_STARTUP_DONE");
+ if (!psd) {
+ MP_TRACE_g(fprintf(stderr,
+ "mod_perl: PerlModule,PerlRequire postponed\n"));
+ my_setenv("PERL_STARTUP_DONE", "1");
+ saveINC;
+ return;
+ }
+ else {
+ MP_TRACE_g(fprintf(stderr,
+ "mod_perl: postponed PerlModule,PerlRequire enabled\n"));
+ my_setenv("PERL_STARTUP_DONE", "2");
+ }
}
ENTER_SAFE(s,p);
1.73 +3 -0 modperl/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /export/home/cvs/modperl/src/modules/perl/mod_perl.h,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- mod_perl.h 1999/01/18 04:25:57 1.72
+++ mod_perl.h 1999/01/27 23:37:30 1.73
@@ -425,6 +425,9 @@
#define PERL_STARTUP_DONE_CHECK getenv("PERL_STARTUP_DONE_CHECK")
#endif
+#define PERL_STARTUP_IS_DONE \
+(!PERL_STARTUP_DONE_CHECK || strEQ(getenv("PERL_STARTUP_DONE"), "2"))
+
#ifndef PERL_DSO_UNLOAD
#define PERL_DSO_UNLOAD getenv("PERL_DSO_UNLOAD")
#endif
1.66 +16 -6 modperl/src/modules/perl/perl_config.c
Index: perl_config.c
===================================================================
RCS file: /export/home/cvs/modperl/src/modules/perl/perl_config.c,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- perl_config.c 1999/01/27 00:28:05 1.65
+++ perl_config.c 1999/01/27 23:37:31 1.66
@@ -506,10 +506,15 @@
if(!PERL_RUNNING()) perl_startup(parms->server, parms->pool);
require_Apache(parms->server);
if(PERL_RUNNING()) {
- if (perl_require_module(arg, NULL) != OK) {
- dTHR;
- return SvPV(ERRSV,na);
+ if (PERL_STARTUP_IS_DONE) {
+ if (perl_require_module(arg, NULL) != OK) {
+ dTHR;
+ return SvPV(ERRSV,na);
+ }
}
+ else {
+ return NULL;
+ }
}
else {
char **new;
@@ -532,9 +537,14 @@
if(!PERL_RUNNING()) perl_startup(parms->server, parms->pool);
MP_TRACE_d(fprintf(stderr, "perl_cmd_require: %s\n", arg));
if(PERL_RUNNING()) {
- if (perl_load_startup_script(NULL, parms->pool, arg, TRUE) != OK) {
- dTHR;
- return SvPV(ERRSV,na);
+ if (PERL_STARTUP_IS_DONE) {
+ if (perl_load_startup_script(NULL, parms->pool, arg, TRUE) != OK) {
+ dTHR;
+ return SvPV(ERRSV,na);
+ }
+ else {
+ return NULL;
+ }
}
}
else {