From the docs I gather that `@schedule operation()` is equivalent to 
`schedule(@task operation())`, In that `operation()` will be wrapped in a task 
and added as a runnable item in the scheduler queue.

`@async` says it wraps the expression in a closure rather than a task, but 
likewise adds it to the scheduler queue. It also adds it to the list of things 
that the enclosing `@sync` is waiting for, so that’s definitely another 
difference from `@schedule`

What are the practical differences between wrapping an expression in a Task 
rather than a closure before adding it to the scheduler queue?

-s

Reply via email to