None of them look like traditional callbacks. The callback function / method is what you register for the call after the operation completes (possibly asynchronously if the task is scheduled in another thread).
Sleep, waiting, and exiting essentially block execution until their conditions are met. Notify blocked threads blocked by pending.
source share