Elizabeth Mattijsen <[EMAIL PROTECTED]> writes:
>
>I think the simplest way would be to have PerlIO::gzip kill itself off 
>altogether when it is being cloned.  If you would like to have PerlIO::gzip 
>in the thread as well, you could simply C<useit> again.

You don't need to remove :gzip from the list of known layers,
just remove the layer from the streams.

>
>As I said, as a simple solution for now, I think a:
>
>   sub CLONE { undef( %PerlIO::gzip:: ) }

I don't think that helps any. That just means the layer stack now 
has pointers to things that are no longer in the symbol table.

What _needs_ to be done is the ->Dup entry of :gzip's vtable 
needs to not push itself on the child side (or pop itself on the 
parent side). Possibly "flush" the stream remove itself 
and then re-add both sides?

>
>or equivalent of that in XS code would be sufficient to get around the 
>current problem of having to start your threads before you can open a 
>PerlIO::gzip layer...




>
>
>Liz
-- 
Nick Ing-Simmons
http://www.ni-s.u-net.com/

Reply via email to