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 {