On Tue, 18 Jul 2000 11:21:15 PDT, [EMAIL PROTECTED] 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
[EMAIL PROTECTED]
-----------------------------------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.