
cholet at logilune
Aug 30, 2000, 1:16 AM
Post #4 of 17
(3169 views)
Permalink
|
> > has anybody tried the patch that sarathy posted? > > Where did he post it to? > > -- > <Matt/> he posted it to the modperl list a few days ago, here it is: ----- Original Message ----- From: "Gurusamy Sarathy" <gsar [at] ActiveState> To: <craig.davidson [at] nuasis> Cc: <bugs [at] ActiveState>; <ActivePerl-Bugs [at] ActiveState>; <modperl [at] apache> Sent: Friday, August 25, 2000 11:39 PM Subject: Re: mod_perl for Apache to work with ActivePerl (APR#816) > On Tue, 18 Jul 2000 11:21:15 PDT, craig.davidson [at] nuasis wrote: > >Full_Name: > >Version: ActivePerl 616 > >OS: Windows NT 4.0 SP 4 or lower > >Submission from: (NULL) (155.229.70.9) > > > > > >is there a way to get mod_perl for Apache to work with ActivePerl? > > mod_perl apparently doesn't know anything about ithreads. This > patch makes it build and "work" for me, but I haven't tested it > for more than 20 seconds. It is possible that similar treatment > is needed for other callbacks that my 20-seconds worth of testing > did not trigger. :-) > > Note that the patch should NOT be applied as is. A #ifdef USE_ITHREADS > guard is needed around the new code. Sorry I don't have time to > make a more complete patch. > > HTH, > > > Sarathy > gsar [at] ActiveState > -----------------------------------8<----------------------------------- > --- Leak/Leak.xs.dist Wed Aug 02 18:33:34 2000 > +++ Leak/Leak.xs Wed Aug 02 18:57:38 2000 > @@ -121,7 +121,7 @@ > { > char *state = lookup((struct hash_s **)p, sv, t_new); > if (state != t_old) { > - fprintf(stderr, "%s %p : ", state ? state : t_new, sv); > + PerlIO_printf(PerlIO_stderr(), "%s %p : ", state ? state : t_new, sv); > sv_dump(sv); > } > return hwm+1; > --- src/modules/perl/mod_perl.c.dist Wed Aug 02 18:33:34 2000 > +++ src/modules/perl/mod_perl.c Thu Aug 03 13:02:47 2000 > @@ -735,9 +735,10 @@ > perl_tainting_set(s, cls->PerlTaintCheck); > (void)GvSV_init("Apache::__SendHeader"); > (void)GvSV_init("Apache::__CurrentCallback"); > +#if 0 > if (ap_configtestonly) > GvSV_setiv(GvSV_init("Apache::Server::ConfigTestOnly"), TRUE); > - > +#endif > Apache__ServerReStarting(FALSE); /* just for -w */ > Apache__ServerStarting_on(); > > @@ -861,10 +862,19 @@ > dPPDIR; > dPPREQ; > dTHR; > - GV *gv = gv_fetchpv("SIG", TRUE, SVt_PVHV); > + GV *gv; > + > + dTHX; > + > + if (!aTHX) { > + PERL_SET_CONTEXT(perl); > + } > > (void)acquire_mutex(mod_perl_mutex); > - > + > + gv = gv_fetchpv("SIG", TRUE, SVt_PVHV); > + > + > #if 0 > /* force 'PerlSendHeader On' for sub-requests > * e.g. Apache::Sandwich > @@ -1310,6 +1320,10 @@ > I32 i, do_clear=FALSE; > SV *sub, **svp; > int hook_len = strlen(hook); > + dTHX; > + > + if (!aTHX) > + PERL_SET_CONTEXT(perl); > > if(handlers == Nullav) { > if(hv_exists(stacked_handlers, hook, hook_len)) { > End of Patch.
|