Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Things you need to know before programming Perl ithreads

by jdhedden (Deacon)
on May 16, 2006 at 14:21 UTC ( #549776=note: print w/ replies, xml ) Need Help??


in reply to Things you need to know before programming Perl ithreads

use threads (); my $thread; BEGIN { # execute this at compile time $thread = threads->new( sub { print "Benchmark has not been loaded!\n" unless defined $Bench +mark::VERSION; # do your Benchmark stuff } ); } use Benchmark; $thread->join;
which prints:
Benchmark has not been loaded!
Scalars leaked: 1
Yikes! What is that! "Scalars leaked: 1". Well, yes, that's one of the remaining problems/features/bugs of the Perl ithreads implementation. This particularly seems to happen when you start threads at compile time. From practical experience, I must say it seems to be pretty harmless.
The leaked scalar is the result of returning a closure from a thread. In many cases it is, as mentioned, harmless. However, in some implementations of Perl, returning a closure from a thread may cause the interpreter to crash (i.e., dump core). Caveat emptor.

Remember: There's always one more bug.


Comment on Re: Things you need to know before programming Perl ithreads
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://549776]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2015-07-01 21:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (22 votes), past polls