in reply to Is returning a list broken when using threads?
I haven't used threads before, but I found the following in perldoc threads for Perl 5.8.3 (typo corrected):
The context (scalar or list) of the thread creation is also the context for join(). This means that if you intend to return an array from a thread, you must use "my ($thread) = threads->new(...)", and that if you intend to return a scalar, you must use "my $thread = ...".
Now that I think about it, it kinda has to be that way. It can't use the context for the join call, because that's too late. The called routine has to be able to invoke wantarray from the moment it's called and get the right result.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Is returning a list broken when using threads?
by beable (Friar) on Jul 25, 2004 at 02:55 UTC | |
by BrowserUk (Patriarch) on Jul 25, 2004 at 03:43 UTC | |
by tilly (Archbishop) on Jul 25, 2004 at 04:59 UTC | |
by CountZero (Bishop) on Jul 25, 2004 at 16:24 UTC | |
by chromatic (Archbishop) on Jul 25, 2004 at 20:23 UTC | |
by Errto (Vicar) on Jul 25, 2004 at 20:18 UTC |