Skip Menu |

This queue is for tickets about the IO-Lambda CPAN distribution.

Report information
The Basics
Id: 76863
Status: rejected
Priority: 0/
Queue: IO-Lambda

People
Owner: Nobody in particular
Requestors: ribasushi [...] leporine.io
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: (no value)



Subject: Global destruction detection is not thread-safe
Your distribution is using the construct END { $global_destroy = 1 } in [1], which is not thread safe as described here [2]. Please consider switching to https://metacpan.org/release/Devel-GlobalDestruction, which has both an XS and a PurePerl variant, both of which are tested to behave correctly under ithreads. Cheers [1] http://cpansearch.perl.org/src/KARASIK/IO-Lambda-1.23/lib/IO/Lambda/Loop/POE.pm [2] https://metacpan.org/source/DOY/Devel-GlobalDestruction-0.05/lib/Devel/GlobalDestruction.pm#L36
Hmm I have hard time imagining a realistic situation where this may be a problem ... any real example or this is just a theoretical exercise? I'm skeptic because POE and ithreads don't live well together, AFAIK.
On Sat Apr 28 13:53:36 2012, KARASIK wrote: Show quoted text
> Hmm I have hard time imagining a realistic situation where this may be a > problem ... any real example or this is just a theoretical exercise? I'm > skeptic because POE and ithreads don't live well together, AFAIK.
This is not entirely correct. On win32 fork() == thread->new. And POE does work under Win32 (even if limited). As far as realistic problem scenarios - the test suite of D::GD is rather extensive. Anyhow - I do not have a *specific* problem with this module (in fact I never used it). I am just doing a "public service" based on: http://grep.cpan.me/?q=(%3Fms%3AEND\s*\{.{0%2C200}(%3Fi%3Aglobal).{0%2C10}(%3Fi%3Adestr)) If you still believe this does not deserve attention - re-reject the ticket and I will let it stay closed.
Well POE doesn't play nice with win32 forks (i.e. threads) either, and END with forks behaves wildly different on unix and win32 models. Running POE on a forked thread under win32, this is just wrong on so many levels; I just don't want to encourage people doing that, sorry.