I found this on the build log for StringEncodings.jl.
┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ caller = wait(::OutputCollector) at OutputCollector.jl:158
└ @ BinaryProvider OutputCollector.jl:158
But, I thought fetch
is supposed to return results and wait
does not… They are not the same thing.
I then checked the online help and it seems to indicate proper usage of wait(t::Task)
:
wait([x])
Block the current task until some event occurs, depending on the type of the argument:
• Channel: Wait for a value to be appended to the channel.
• Condition: Wait for notify on a condition.
• Process: Wait for a process or process chain to exit. The exitcode field of a process can be used to determine success
or failure.
• Task: Wait for a Task to finish. If the task fails with an exception, the exception is propagated (re-thrown in the
task that called wait).
• RawFD: Wait for changes on a file descriptor (see the FileWatching package).
If no argument is passed, the task blocks for an undefined period. A task can only be restarted by an explicit call to schedule
or yieldto.
Often wait is called within a while loop to ensure a waited-for condition is met before proceeding.
I tried to get more info from NEWS.md but it doesn’t quite tell me exactly what’s the change:
wait and fetch on Task now resemble the interface of Future.