develooper Front page | perl.ithreads | Postings from February 2008

Re: Passing an IO:Handle to a Thread

Thread Previous
From:
Dave Mitchell
Date:
February 29, 2008 17:26
Subject:
Re: Passing an IO:Handle to a Thread
Message ID:
20080301012630.GA9337@iabyn.com
On Fri, Feb 29, 2008 at 07:38:48PM -0500, Jerry D. Hedden wrote:
> Dean Arnold wrote:
> >  Hmmm, it looks like the PL_destroyhook change in CORE
> >  made it into 5.10.0, but the version of threads::shared
> >  that uses it didn't. It looks like the CPAN version has
> >  it...or am I missing something else ?
> 
> That's exactly correct.  You need 5.10.0 + threads::shared from CPAN.

Ah, PL_destroyhook had completely passed me by.

I've just had a look at the bleed version of threads::shared, and there
appears to be a destroyhook race condition:

If both threads try to free a shared object (RC=2) around the same time,
they both call Perl_shared_object_destroy, both conclude they shouldn't
call DESTROY since RC > 1, and thus the object is freed with no-one
calling the destructor.

-- 
The Enterprise's efficient long-range scanners detect a temporal vortex
distortion in good time, allowing it to be safely avoided via a minor
course correction.
    -- Things That Never Happen in "Star Trek" #21

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About