in reply to Re^2: Scope of thread variable
in thread Scope of thread variable
So, I should not be worried about clashing of variables with threads?
you said contents may not be used but threads will get their own "our" variable and threads can modify it, right?
I'm gonna await the sucker punch, but ostensibly: No, you shouldn't worry. Yes, threads can safely modify our variables:
A new thread will inherit a copy of any pre-existing global variable, but both it, and any other threads, may safely modify their copies of that variable without conflict. This may convince you.
#! perl -slw use strict; use threads; my $tid = threads->tid; our $fred = 12345; print "$tid : $fred"; my $t = threads->create( sub{ my $tid = threads->tid; our $fred; print "$tid : $fred"; $fred = 54321; print "$tid : $fred"; } )->join; print "$tid : $fred"; $fred = 'fred'; print "$tid : $fred"; __END__ C:\test>junk 0 : 12345 1 : 12345 1 : 54321 0 : 12345 0 : fred
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Scope of thread variable
by mr_p (Scribe) on Apr 07, 2010 at 19:38 UTC | |
|
Re^4: Scope of thread variable
by mr_p (Scribe) on Apr 08, 2010 at 15:37 UTC | |
by BrowserUk (Patriarch) on Apr 08, 2010 at 16:07 UTC | |
by mr_p (Scribe) on Apr 08, 2010 at 17:00 UTC | |
by BrowserUk (Patriarch) on Apr 08, 2010 at 17:19 UTC | |
by mr_p (Scribe) on Apr 08, 2010 at 17:31 UTC | |
|