According to the example code for `pmap` in the Julia documentation 
<http://docs.julialang.org/en/latest/manual/parallel-computing/?highlight=parallel#synchronization-with-remote-references>,
 
function definitions (such as the `nextidx()` function shown there) are 
also not localized.  The function shows a way to manage a scalar variable 
that can be accessed by all the `@async` processes.


On Wednesday, June 4, 2014 12:30:24 AM UTC-7, Menyoung Lee wrote:
>
> It seems to localize single variables but not arrays. I could even 
> implement an async that I could interrupt by updating values in a global 
> array. I actually don't know of any sane way to do this, i.e., interrupt a 
> task or an async bloc from the main thread?
>
> global x = zeros(1)
> @async begin
>     for i = 1:6
>         if x[1] > 0
>             break
>         end
>         println("hi $x")
>         sleep(5)
>     end
> end
>
> then it starts outputting
>
> hi [0.0]
> Task (queued) @0x00000001089daf80
>
> hi [0.0]
>
> then once I input
> > x[1] = 1
>
>  it stops. the async block can also as it runs update the entries of a 
> global array, so that the global array has different values that you can 
> access from the interpreter at different times as the async block is 
> running; this is one way I found to do something like a background task, 
> and unfortunately I don't know of any sane way to do that in Julia either. 
> Is there?
>
> On Friday, March 28, 2014 9:50:29 AM UTC-7, Collin Glass wrote:
>>
>> Interesting thread. What should one use to have a chunk of asynchronous 
>> code that does not localize variables?
>>
>>
>> On Saturday, July 20, 2013 4:23:21 AM UTC-4, Amit Murthy wrote:
>>>
>>> My understanding is that "let" blocks only localize variables explicitly 
>>> specified on the first line, while @async localizes all variables.
>>>
>>>
>>> On Sat, Jul 20, 2013 at 1:01 PM, Toivo Henningsson <[email protected]> 
>>> wrote:
>>>
>>>> Alternatively, @async could require to be invoked as @async let ... end
>>>>
>>>
>>>

Reply via email to