dougm 01/03/26 13:43:32 Modified: lib/ModPerl Code.pm src/modules/perl modperl_options.c Log: Clone and Parent options require an ithreads enabled Perl Revision Changes Path 1.54 +5 -1 modperl-2.0/lib/ModPerl/Code.pm Index: Code.pm =================================================================== RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- Code.pm 2001/03/26 01:08:28 1.53 +++ Code.pm 2001/03/26 21:43:30 1.54 @@ -88,8 +88,9 @@ #XXX: allow disabling of PerDir hooks on a PerDir basis my @hook_flags = (map { canon_uc($_) } keys %hooks); +my @ithread_opts = qw(CLONE PARENT); my %flags = ( - Srv => [qw(NONE CLONE PARENT ENABLED AUTOLOAD MERGE_HANDLERS), + Srv => ['NONE', @ithread_opts, qw(ENABLED AUTOLOAD MERGE_HANDLERS), @hook_flags, 'UNSET'], Dir => [qw(NONE SEND_HEADER SETUP_ENV MERGE_HANDLERS UNSET)], Interp => [qw(NONE IN_USE PUTBACK CLONED BASE)], @@ -376,6 +377,9 @@ print $h_fh "\n#define MpSrvHOOKS_ALL_On(p) MpSrvFLAGS(p) |= (", (join '|', map { 'MpSrv_f_' . $_ } @hook_flags), ")\n"; + + print $h_fh "\n#define MpSrvOPT_ITHREAD_ONLY(o) \\\n", + (join ' || ', map("(o == MpSrv_f_$_)", @ithread_opts)), "\n"; (); } 1.5 +9 -1 modperl-2.0/src/modules/perl/modperl_options.c Index: modperl_options.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_options.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- modperl_options.c 2001/03/25 17:42:26 1.4 +++ modperl_options.c 2001/03/26 21:43:31 1.5 @@ -73,7 +73,15 @@ return error; } - +#ifndef USE_ITHREADS + else { + if (MpSrvOPT_ITHREAD_ONLY(o)) { + return apr_pstrcat(p, "PerlOption `", str, + "' requires an ithreads enabled Perl", NULL); + } + } +#endif + if (action == '-') { o->opts_remove |= opt; o->opts_add &= ~opt;