Skip Menu |

This queue is for tickets about the Forks-Super CPAN distribution.

Report information
The Basics
Id: 76868
Status: resolved
Priority: 0/
Queue: Forks-Super

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

Bug Information
Severity: Important
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/MOB/Forks-Super-0.63/lib/Signals/XSIG.pm [2] https://metacpan.org/source/DOY/Devel-GlobalDestruction-0.05/lib/Devel/GlobalDestruction.pm#L36
In 0.65, Forks::Super will use Devel::GlobalDestruction if it is available. The D::GD use case of safe cleanup of a thread is not really applicable because using this module with threads is already a bad idea, so I won't make D::GD a required dependency for this module.