hi...

the following registry script only prints "foo" for me using bleedperl...

my $r = shift;
$r->send_http_header('text/plain');
$r->print('foo');
print 'bar';

I think it started around the time Doug sent this message along, but I can't
be sure - it's definitely been a while, though.  sorry it took me so long to
report it, but got caught up in other things...

I tried the original version and Doug's patch (since bleedperl looks
different already) but none seem to solve the problem.

maybe something needs to be fixed at the Apache::PRINT level?  my bleedperl
seems rather broken these days (none of the tests pass) even after rsync'ing
from scratch, so it may be just me but I thought I'd bring it up anyway...

--Geoff

important perl -V stuff

    config_args='-des -Dusethreads -Dprefix=/src/bleedperl -Doptimize=-g
-Dusedevel -Dinstallusrbinperl -Uversiononly'
    hint=previous, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef

> -----Original Message-----
> From: Doug MacEachern [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 01, 2001 1:06 PM
> To: [EMAIL PROTECTED]
> Subject: [patch] ithreads + refto bug (fwd)
> 
> 
> fyi, this was the cause of modules/cgi #3 test failure..
> 
> ---------- Forwarded message ----------
> Date: Wed, 1 Aug 2001 09:47:28 -0700 (PDT)
> From: Doug MacEachern <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: [patch] ithreads + refto bug
> 
> strange bug, happens in both 5.6.x and bleedperl, the 
> following script:
> 
> package Foo;
> 
> use strict;
> 
> sub TIEHANDLE { bless {} }
> 
> my $cnt = 'a';
> 
> sub READ {
>     $_[1] = $cnt++;
>     1;
> }
> 
> sub do_read {
>     my $fh = shift;
> 
>     read $fh, my $buff, 1;
>     print "->$buff<-\n";
> }
> 
> $|=1;
> 
> tie *STDIN, 'Foo';
> 
> read STDIN, my $buff, 1;
> print "=>$buff<=\n";
> 
> do_read(\*STDIN);
> 
> untie *STDIN;
> 
> prints:
> =>a<=
> 
> then in the call to do_read(\*STDIN), $fh is no longer tied.
> with vanilla (non-ithreads) Perl, it prints the expected:
> =>a<=
> ->b<-
> 
> the bug seems to be S_refto (called by pp_srefgen), which the 
> patch below
> fixes, all tests pass.
> 
> Index: pp.c
> ===================================================================
> RCS file: /usr/local/cvs_repository/perl-current-mirror/pp.c,v
> retrieving revision 1.1.1.33
> diff -u -r1.1.1.33 pp.c
> --- pp.c      2001/07/31 15:56:35     1.1.1.33
> +++ pp.c      2001/08/01 16:37:16
> @@ -467,7 +467,7 @@
>       SvTEMP_off(sv);
>       (void)SvREFCNT_inc(sv);
>      }
> -    else if (SvPADTMP(sv))
> +    else if (SvPADTMP(sv) && !(isGV(sv) && GvIN_PAD(sv)))
>       sv = newSVsv(sv);
>      else {
>       SvTEMP_off(sv);
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to