Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://549776]
[Corion]: Mhmm. I'm writing a database export, and two supposedly identical files compress to different sizes... So either the order of rows is different (which would be OK) or something else is bad (which wouldn't be OK). I guess I have to test with smaller tables

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2018-04-25 07:29 GMT
Find Nodes?
    Voting Booth?