Skip Menu |

This queue is for tickets about the Imager CPAN distribution.

Report information
The Basics
Id: 52268
Status: resolved
Priority: 0/
Queue: Imager

People
Owner: TONYC [...] cpan.org
Requestors: phire123418 [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.71
Fixed in: (no value)



Subject: Issue with Imager and threads
While using Imager in conjunction with threads, and threads::shared, I encountered an issue with joining threads. Specifically, the second time I attempted to join a thread, the function blocked. I'm on Win XP, using strawberry perl v5.10.1 use threads; use threads::shared; #Without this line, perl crashes use warnings; use strict; use Imager; my $a=threads->create('d'); $a->join(); #No issues my $b=threads->create('d'); $b->join(); #This line blocks print('z'); sub d {}
On Sun Nov 29 20:10:57 2009, K_Zennon wrote: Show quoted text
> While using Imager in conjunction with threads, and threads::shared, I > encountered an issue with joining threads. Specifically, the second > time I attempted to join a thread, the function blocked. > I'm on Win XP, using strawberry perl v5.10.1
Hi, In general Imager doesn't support threads, but I've done the minimum work to make sure it doesn't double free XS level objects on thread joins. I've uploaded Imager 0.71_01 with that change to let CPAN testers bang on it, but if you're inclined, you can build and test 0.71_01 yourself once it appears on your CPAN mirror. Thanks for your report Tony
On Sun Nov 29 20:10:57 2009, K_Zennon wrote: Show quoted text
> While using Imager in conjunction with threads, and threads::shared, I > encountered an issue with joining threads. Specifically, the second > time I attempted to join a thread, the function blocked. > I'm on Win XP, using strawberry perl v5.10.1 > > use threads; > use threads::shared; #Without this line, perl crashes > use warnings; > use strict; > > use Imager; > > my $a=threads->create('d'); > $a->join(); #No issues > my $b=threads->create('d'); > $b->join(); #This line blocks > print('z'); > > sub d {}
This problem has been fixed in Imager 0.72, though you will need to be using perl 5.8.8 or later for the fix to apply. Tony