dougm       01/03/14 17:47:00

  Modified:    src/modules/perl mod_perl.c
  Log:
  need to tear down interpreter in non-ithreads mode
  
  Revision  Changes    Path
  1.33      +21 -0     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.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- mod_perl.c        2001/03/14 08:22:47     1.32
  +++ mod_perl.c        2001/03/15 01:47:00     1.33
  @@ -1,5 +1,18 @@
   #include "mod_perl.h"
   
  +#ifndef USE_ITHREADS
  +static apr_status_t modperl_shutdown(void *data)
  +{
  +    PerlInterpreter *perl = (PerlInterpreter *)data;
  +    PL_perl_destruct_level = 2;
  +    MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx\n",
  +               (unsigned long)perl);
  +    perl_destruct(perl);
  +    perl_free(perl);
  +    return APR_SUCCESS;
  +}
  +#endif
  +
   PerlInterpreter *modperl_startup(server_rec *s, apr_pool_t *p)
   {
       MP_dSCFG(s);
  @@ -38,12 +51,20 @@
   
       perl_run(perl);
   
  +    MP_TRACE_i(MP_FUNC, "constructed interpreter=0x%lx\n",
  +               (unsigned long)perl);
  +
   #ifdef MP_USE_GTOP
       MP_TRACE_m_do(
           modperl_gtop_do_proc_mem_after(MP_FUNC ": perl_parse");
       );
   #endif
   
  +#ifndef USE_ITHREADS
  +    apr_pool_cleanup_register(p, (void*)perl,
  +                              modperl_shutdown, apr_pool_cleanup_null);
  +#endif
  +    
       return perl;
   }
   
  
  
  

Reply via email to