terminate call adds one callback to each port to detect when the queue
is emptied. To account for this and any previously enqueued callbacks,
dispatch is continually called until it returns false.
Clean up task queue example
terminate call adds one callback to each port to detect when the queue
is emptied. To account for this and any previously enqueued callbacks,
dispatch is continually called until it returns false.