Same thing on arch linux actually:
| | |_| | | | (_| | | Version 0.3.7-pre+15 (2015-03-02 23:43 UTC)
_/ |\__'_|_|_|\__'_| | Commit 0f0b136 (8 days old release-0.3)
|__/ | x86_64-unknown-linux-gnu
julia> t = @async (println("foo");println("bar"); println("baz"))
foo
Task (queued) @0x0000000003c57080bar
julia>
_
On Tuesday, March 10, 2015 at 8:59:52 PM UTC-7, Sam L wrote:
>
> I see the behavior on OS X. It also occurs with three println's.
>
> | | |_| | | | (_| | | Version 0.3.7-pre+1 (2015-02-17 22:12 UTC)
> _/ |\__'_|_|_|\__'_| | Commit d15f183* (21 days old release-0.3)
> |__/ | x86_64-apple-darwin13.4.0
>
> julia> t = @async (println("foo");println("bar"); println("baz"))
> foo
> Task (queued) @0x00007fa0faf0e520bar
>
>
> julia>
> _
>
> The _ indicates the cursor position after running the line of code. I hit
> return only once after the first line starting with 't = @async...', and I
> got two blank lines after Task was displayed, before the julia> prompt, and
> the cursor ended up in the first column on a new line after the julia>
> prompt.
>
>
> On Tuesday, March 10, 2015 at 8:17:30 PM UTC-7, Amit Murthy wrote:
>>
>> Works fine on Linux.
>>
>>
>>
>> On Tue, Mar 10, 2015 at 11:28 PM, Ben Arthur <[email protected]> wrote:
>>
>>> in my continuing quest to understand Julia tasks, i have created the
>>> following contrived example which does not behave as i would expect. can
>>> anyone help explain please? thanks in advance.
>>>
>>> julia> function printfoobar()
>>> println("foo")
>>> println("bar")
>>> end
>>>
>>> printfoobar (generic function with 1 method)
>>>
>>> julia> printfoobar() # great, it works
>>> foo
>>> bar
>>>
>>> julia> println("honey"); println("wagon") # no surprise again
>>> honey
>>> wagon
>>>
>>> julia> t = @async (println("honey"); println("wagon")) # works too,
>>> modulo 'Task' being inbetween
>>> honey
>>> Task (queued) @0x00007fb59e832500wagon
>>>
>>> julia> t = @async printfoobar() # ditto: foo and bar both printed,
>>> albeit with 'Task' inbetween
>>> foo
>>> Task (queued) @0x00007fb59f2e1720bar
>>>
>>> julia> t = @async (println("honey"); printfoobar(); println("wagon"))
>>> # WHERE ARE bar AND wagon ???
>>> honey
>>> Task (queued) @0x00007fb59f2e1840foo
>>>
>>> julia> # <ENTER> #nope, they still don't appear
>>>
>>> julia> # <ENTER>
>>>
>>> julia> # <ENTER>
>>>
>>> julia> wait(t) # nope, still no further printed output
>>>
>>> julia> yield() # still no joy
>>>
>>> julia> istaskdone(t)
>>> true
>>>
>>> is it that println("foo") and println("wagon") never get executed? or
>>> that the output stream is just not making it to the REPL? this is in 0.3.6
>>> by the way. similar things happen on a 0 day old master.
>>>
>>
>>