dougm       2002/06/20 21:16:51

  Modified:    src/modules/perl mod_perl.c modperl_interp.c
  Log:
  move modperl_pp_{set,unset}_all and modperl_init_{init,unload} to
  modperl_sys_{init,term} functions that only happen once per-parent
  process
  
  Revision  Changes    Path
  1.128     +16 -5     modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.127
  retrieving revision 1.128
  diff -u -r1.127 -r1.128
  --- mod_perl.c        21 Jun 2002 00:44:24 -0000      1.127
  +++ mod_perl.c        21 Jun 2002 04:16:51 -0000      1.128
  @@ -202,10 +202,6 @@
           return;
       }
   
  -    modperl_perl_pp_set_all();
  -
  -    modperl_env_init();
  -
       base_perl = modperl_startup(base_server, p);
   
   #ifdef USE_ITHREADS
  @@ -330,6 +326,10 @@
       modperl_tls_create_request_rec(pconf);
   }
   
  +/*
  + * modperl_sys_{init,term} are things that happen
  + * once per-parent process, not per-interpreter
  + */
   static apr_status_t modperl_sys_init(void)
   {
   #if 0 /*XXX*/
  @@ -345,11 +345,22 @@
       }
   #endif
   #endif
  +
  +    /* modifies PL_ppaddr */
  +    modperl_perl_pp_set_all();
  +
  +    /* modifies PL_vtbl_env{elem} */
  +    modperl_env_init();
  +
       return APR_SUCCESS;
   }
   
   static apr_status_t modperl_sys_term(void *data)
   {
  +    modperl_env_unload();
  +
  +    modperl_perl_pp_unset_all();
  +
   #if 0 /*XXX*/
       PERL_SYS_TERM();
   #endif
  @@ -362,7 +373,7 @@
       apr_pool_create(&server_pool, pconf);
   
       modperl_sys_init();
  -    apr_pool_cleanup_register(server_pool, NULL,
  +    apr_pool_cleanup_register(pconf, NULL,
                                 modperl_sys_term, apr_pool_cleanup_null);
       modperl_init_globals(s, pconf);
       modperl_init(s, pconf);
  
  
  
  1.50      +0 -4      modperl-2.0/src/modules/perl/modperl_interp.c
  
  Index: modperl_interp.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- modperl_interp.c  21 Jun 2002 03:46:46 -0000      1.49
  +++ modperl_interp.c  21 Jun 2002 04:16:51 -0000      1.50
  @@ -152,10 +152,6 @@
           modperl_interp_destroy(mip->parent);
       }
   
  -    modperl_env_unload();
  -
  -    modperl_perl_pp_unset_all();
  -
       return APR_SUCCESS;
   }
   
  
  
  


Reply via email to