Shutdown of a task now works as follows:
When isc_task_shutdown() is called, any shutdown events are posted and the task goes into shutting down state. isc_task_onshutdown() may no longer be called. If the task allows transition to the done state (the default), then as soon as the task's event queue is empty the task will enter the done state. Once the done state has been entered, events may no longer be posted (regardless of the allowsend state). If transition to the done state is not allowed, then the task will continue to exist and be able to receive events. Moved event support to event.[ch]. The final state of a task is now called "done" not "shutdown". Created a flags variable instead of having separate booleans. Added isc_task_allowdone() and isc_task_purgerange(). Minor tracing fixes.
Showing with 154 additions and 197 deletions