On Mon, 15 Sep 2003, Stas Bekman wrote: > Nick Ing-Simmons wrote: > [...] > > > The maelstrom of waters surounding Win32's various > > mallocs when threaded are dangerous. > > I think it's no longer an issue, we just don't use perl's > malloc here, but apr's apr_palloc, which has no such > problems. Once Steve, Randy or someone else on win32 > confirms that my patch solves the problem for them, i'll > commit it.
It works for me - just to summarize, and to include Steve's patch for the fprintf problem, here's what I used: ========================================================= Index: src/modules/perl/mod_perl.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v retrieving revision 1.183 diff -u -r1.183 mod_perl.c --- src/modules/perl/mod_perl.c 11 Sep 2003 18:10:39 -0000 1.183 +++ src/modules/perl/mod_perl.c 16 Sep 2003 03:23:00 -0000 @@ -22,7 +22,7 @@ #endif /* see modperl_hash_seed_set() */ -static void modperl_hash_seed_init(apr_pool_t *p) +static void modperl_hash_seed_init(pTHX_ apr_pool_t *p) { #ifdef MP_NEED_HASH_SEED_FIXUP char *s; @@ -41,7 +41,7 @@ /* calculate our own random hash seed */ if (!MP_init_hash_seed_set) { - apr_uuid_t *uuid = (apr_uuid_t *)safemalloc(sizeof(apr_uuid_t)); + apr_uuid_t *uuid = (apr_uuid_t *)apr_palloc(p, sizeof(apr_uuid_t)); char buf[APR_UUID_FORMATTED_LENGTH + 1]; int i; @@ -63,8 +63,8 @@ if (s) { int i = atoi(s); if (i == 1) { - fprintf(stderr, "\nmod_perl: using init hash seed: %"UVuf"\n", - MP_init_hash_seed); + PerlIO_printf(Perl_error_log, "\nmod_perl: using init hash seed: %"UVuf"\n", + MP_init_hash_seed); } } } @@ -587,10 +587,12 @@ int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp) { + dTHX; + /* we can't have PerlPreConfigHandler without first configuring mod_perl */ /* perl 5.8.1+ */ - modperl_hash_seed_init(p); + modperl_hash_seed_init(aTHX_ p); return OK; } ======================================================================== -- best regards, randy --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]