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/05/19 03:04:22 UTC

cvs commit: modperl/t/conf httpd.conf-dist

dougm       99/05/18 18:04:21

  Modified:    .        Changes
               src/modules/perl perl_util.c
               t/conf   httpd.conf-dist
  Log:
  rework PerlFreshRestart to avoid core dump triggered w/ 5.005_03
  
  Revision  Changes    Path
  1.293     +2 -0      modperl/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /export/home/cvs/modperl/Changes,v
  retrieving revision 1.292
  retrieving revision 1.293
  diff -u -r1.292 -r1.293
  --- Changes	1999/05/18 22:07:55	1.292
  +++ Changes	1999/05/19 01:03:57	1.293
  @@ -8,6 +8,8 @@
   
   =item 1.19_01-dev
   
  +rework PerlFreshRestart to avoid core dump triggered w/ 5.005_03
  +
   fix $Apache::Server::Starting under dso
   
   use ap_bfileno() instead of r->connnection->client->fd directly
  
  
  
  1.29      +11 -16    modperl/src/modules/perl/perl_util.c
  
  Index: perl_util.c
  ===================================================================
  RCS file: /export/home/cvs/modperl/src/modules/perl/perl_util.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- perl_util.c	1999/05/18 01:45:00	1.28
  +++ perl_util.c	1999/05/19 01:04:13	1.29
  @@ -464,25 +464,20 @@
   
   void perl_reload_inc(void)
   {
  -    SV *val;
  -    char *key;
  -    I32 klen;
  -    HV *orig_inc = GvHV(incgv);
  -
  -    ENTER;
  -
  -    save_hptr(&GvHV(incgv));
  -    GvHV(incgv) = Nullhv;
  -    SAVEI32(dowarn);
  +    HV *hash = GvHV(incgv);
  +    HE *entry;
  +    I32 old_warn = dowarn;
  +    
       dowarn = FALSE;
  -
  -    (void)hv_iterinit(orig_inc);
  -    while((val = hv_iternextsv(orig_inc, &key, &klen))) {
  +    hv_iterinit(hash);
  +    while ((entry = hv_iternext(hash))) {
  +	char *key = HeKEY(entry);
  +	SvREFCNT_dec(HeVAL(entry));
  +	HeVAL(entry) = &sv_undef;
  +	MP_TRACE_g(fprintf(stderr, "reloading %s\n", key);)
   	perl_require_pv(key);
  -	MP_TRACE_g(fprintf(stderr, "reloading %s\n", key));
       }
  -
  -    LEAVE;
  +    dowarn = old_warn;
   }
   
   I32 perl_module_is_loaded(char *name)
  
  
  
  1.24      +1 -0      modperl/t/conf/httpd.conf-dist
  
  Index: httpd.conf-dist
  ===================================================================
  RCS file: /export/home/cvs/modperl/t/conf/httpd.conf-dist,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- httpd.conf-dist	1999/03/26 20:23:03	1.23
  +++ httpd.conf-dist	1999/05/19 01:04:18	1.24
  @@ -15,6 +15,7 @@
    #-Tw
    PerlTaintCheck On
    PerlWarn On
  + PerlFreshRestart On
   
   =back to pod