Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Can't start threads inside a BEGIN{} block

by ikegami (Pope)
on Sep 26, 2011 at 20:15 UTC ( #927940=note: print w/ replies, xml ) Need Help??


in reply to Can't start threads inside a BEGIN{} block

Buggy version of Perl or threads?

$ perl -E' BEGIN { use threads; async { say "foo"; } ->join for 1..3; } ' foo foo foo


Comment on Re: Can't start threads inside a BEGIN{} block
Download Code
Re^2: Can't start threads inside a BEGIN{} block
by ikegami (Pope) on Sep 26, 2011 at 20:21 UTC

    No, that's not it. Your problem has nothing to do with thread.

    Use «use strict; use warnings;»!!! $num_threads is undef when you execute the BEGIN block.

    1. The file is compiled.
      1. my $num_threads = 2; is compiled.
      2. my $thr = []; is compiled.
      3. BEGIN { ... } is compiled.
        1. ...
        2. for (my $ii=0; $ii<$num_threads; $ii++) { is compiled.
        3. ...
      4. BEGIN { ... } is executed.
        1. ...
        2. for (my $ii=0; $ii<$num_threads; $ii++) { is executed.
        3. ...
      5. print "done\n"; is compiled.
    2. The file is executed.
      1. my $num_threads = 2; is executed.
      2. my $thr = []; is executed.
      3. print "done\n"; is executed.
      Duh! Thx.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2014-10-25 05:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (142 votes), past polls