dougm       01/04/24 22:27:17

  Modified:    src/modules/perl modperl_interp.c modperl_util.c
                        modperl_util.h
  Log:
  use apr_os_dso_handle_put/apr_dso_unload rather than the unportable dlclose()
  
  Revision  Changes    Path
  1.32      +1 -1      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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- modperl_interp.c  2001/04/09 23:57:22     1.31
  +++ modperl_interp.c  2001/04/25 05:27:17     1.32
  @@ -98,7 +98,7 @@
       perl_free(interp->perl);
   
       if (handles) {
  -        modperl_xs_dl_handles_close(handles);
  +        modperl_xs_dl_handles_close(p, handles);
       }
   
       apr_pool_destroy(p);
  
  
  
  1.9       +8 -5      modperl-2.0/src/modules/perl/modperl_util.c
  
  Index: modperl_util.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- modperl_util.c    2001/04/25 03:13:59     1.8
  +++ modperl_util.c    2001/04/25 05:27:17     1.9
  @@ -162,7 +162,7 @@
       return handles;
   }
   
  -void modperl_xs_dl_handles_close(apr_array_header_t *handles)
  +void modperl_xs_dl_handles_close(apr_pool_t *p, apr_array_header_t *handles)
   {
       int i;
   
  @@ -171,10 +171,13 @@
       }
   
       for (i=0; i < handles->nelts; i++) {
  -     void *handle = ((void **)handles->elts)[i];
  -     MP_TRACE_g(MP_FUNC, "close 0x%lx\n",
  -                   (unsigned long)handle);
  -     dlclose(handle); /*XXX*/
  +        apr_dso_handle_t *dso = NULL;
  +        void *handle = ((void **)handles->elts)[i];
  +
  +        MP_TRACE_g(MP_FUNC, "close 0x%lx\n", (unsigned long)handle);
  +
  +        apr_os_dso_handle_put(&dso, (apr_os_dso_handle_t )handle, p);
  +        apr_dso_unload(dso);
       }
   }
   
  
  
  
  1.10      +1 -1      modperl-2.0/src/modules/perl/modperl_util.h
  
  Index: modperl_util.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_util.h    2001/04/25 03:13:59     1.9
  +++ modperl_util.h    2001/04/25 05:27:17     1.10
  @@ -35,7 +35,7 @@
   
   apr_array_header_t *modperl_xs_dl_handles_get(pTHX_ apr_pool_t *p);
   
  -void modperl_xs_dl_handles_close(apr_array_header_t *handles);
  +void modperl_xs_dl_handles_close(apr_pool_t *p, apr_array_header_t *handles);
   
   modperl_cleanup_data_t *modperl_cleanup_data_new(apr_pool_t *p, void *data);
   
  
  
  

Reply via email to