At work I have to program concurrently. I really love programming in Julia but one thing that annoys me are the backtrace in tasks.
t = @async begin
for i in 1:10 end
error()
end
t |> dump
julia>
Task
next: Nothing nothing
queue: Nothing nothing
storage: Nothing nothing
state: Symbol failed
donenotify: Base.GenericCondition{Base.Threads.SpinLock}
waitq: Base.InvasiveLinkedList{Task}
head: Nothing nothing
tail: Nothing nothing
lock: Base.Threads.SpinLock
handle: Base.Threads.Atomic{Int64}
value: Int64 0
result: ErrorException
msg: String ""
exception: ErrorException
msg: String ""
backtrace: Array{Union{Ptr{Nothing}, Base.InterpreterIP}}((7,))
1: Ptr{Nothing} @0x00000000668ae2e5
2: Ptr{Nothing} @0x0000000066884d57
3: Ptr{Nothing} @0x00000000320969f7
4: Ptr{Nothing} @0x00000000320b0e84
5: Ptr{Nothing} @0x00000000320b0ea4
6: Ptr{Nothing} @0x00000000668675fd
7: Ptr{Nothing} @0x0000000066884bd6
logstate: Base.CoreLogging.LogState
min_enabled_level: Base.CoreLogging.LogLevel
level: Int32 -1
logger: Atom.Progress.JunoProgressLogger Atom.Progress.JunoProgressLogger()
code: #15 (function of type var"#15#16")
sticky: Bool true
What does that mean?
backtrace: Array{Union{Ptr{Nothing}, Base.InterpreterIP}}((7,))
1: Ptr{Nothing} @0x00000000668ae2e5
2: Ptr{Nothing} @0x0000000066884d57
3: Ptr{Nothing} @0x00000000320969f7
4: Ptr{Nothing} @0x00000000320b0e84
5: Ptr{Nothing} @0x00000000320b0ea4
6: Ptr{Nothing} @0x00000000668675fd
7: Ptr{Nothing} @0x0000000066884bd6
I need to now where the error happened (which line and file) and how it propagates.
Is there a better way or something to look forward to?
Cheers