dougm       01/11/01 15:50:32

  Modified:    src/modules/perl mod_perl.c modperl_interp.c modperl_perl.c
                        modperl_perl.h
  Log:
  moving perl_destruct() and releated items into modperl_perl_destruct() wrapper
  
  Revision  Changes    Path
  1.93      +1 -3      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.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- mod_perl.c        2001/10/13 19:11:32     1.92
  +++ mod_perl.c        2001/11/01 23:50:32     1.93
  @@ -9,12 +9,10 @@
   
       handles = modperl_xs_dl_handles_get(aTHX_ cdata->pool);
   
  -    PL_perl_destruct_level = 2;
       MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx\n",
                  (unsigned long)perl);
   
  -    perl_destruct(perl);
  -    perl_free(perl);
  +    modperl_perl_destruct(perl);
   
       if (handles) {
           modperl_xs_dl_handles_close(cdata->pool, handles);
  
  
  
  1.37      +1 -12     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.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- modperl_interp.c  2001/10/21 22:10:11     1.36
  +++ modperl_interp.c  2001/11/01 23:50:32     1.37
  @@ -83,9 +83,6 @@
           MP_TRACE_i(MP_FUNC, "*error - still in use!*\n");
       }
   
  -    PERL_SET_CONTEXT(interp->perl);
  -    PL_perl_destruct_level = 2;
  -
       /* we cant use interp->mip->ap_pool without locking
        * apr_pool_create() will mutex lock for us
        * XXX: could roll something without using apr_pool_t
  @@ -93,16 +90,8 @@
        */
       (void)apr_pool_create(&p, NULL);
       handles = modperl_xs_dl_handles_get(aTHX_ p);
  -
  -    perl_destruct(interp->perl);
   
  -    /* XXX: big bug in 5.6.1 fixed in 5.7.2+
  -     * XXX: see CLONEf_CLONE_HOST perl_clone() flag
  -     * XXX: try to find a workaround for 5.6.1
  -     */
  -#ifndef WIN32
  -    perl_free(interp->perl);
  -#endif
  +    modperl_perl_destruct(interp->perl);
   
       if (handles) {
           modperl_xs_dl_handles_close(p, handles);
  
  
  
  1.7       +19 -0     modperl-2.0/src/modules/perl/modperl_perl.c
  
  Index: modperl_perl.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- modperl_perl.c    2001/10/21 05:46:47     1.6
  +++ modperl_perl.c    2001/11/01 23:50:32     1.7
  @@ -82,3 +82,22 @@
       modperl_perl_init_ids(aTHX_ &ids);
   #endif
   }
  +
  +void modperl_perl_destruct(PerlInterpreter *perl)
  +{
  +    dTHXa(perl);
  +
  +    PERL_SET_CONTEXT(perl);
  +
  +    PL_perl_destruct_level = 2;
  +
  +    perl_destruct(perl);
  +
  +    /* XXX: big bug in 5.6.1 fixed in 5.7.2+
  +     * XXX: see CLONEf_CLONE_HOST perl_clone() flag
  +     * XXX: try to find a workaround for 5.6.1
  +     */
  +#ifndef WIN32
  +    perl_free(perl);
  +#endif
  +}
  
  
  
  1.7       +2 -0      modperl-2.0/src/modules/perl/modperl_perl.h
  
  Index: modperl_perl.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- modperl_perl.h    2001/10/21 05:46:47     1.6
  +++ modperl_perl.h    2001/11/01 23:50:32     1.7
  @@ -11,4 +11,6 @@
   
   void modperl_perl_init_ids_server(server_rec *s);
   
  +void modperl_perl_destruct(PerlInterpreter *perl);
  +
   #endif /* MODPERL_PERL_H */
  
  
  


Reply via email to