Holy cow, I wrote a book!
The thread pool provides a number of functions named
What's the point of all these functions?
Why can't you just do the operation yourself
immediately before returning?
What's the point of the others?
the same thing as
It's a way to release a resource
execution has left the function and
the callback is marked as complete.
In the case of a synchronization resource,
that resource may be what's keeping somebody from unloading
or it might protect a race condition between the callback
function and a function that tries to cancel the callback.