Destructor notifies the io_service
that the work is complete.
~work();
The destructor is used to inform the io_service
that some work has
finished. Once the count of unfinished work reaches zero, the io_service
object's run()
function is permitted to exit.