Close the descriptor.
void close();
This function is used to close the descriptor. Any asynchronous read
or write operations will be cancelled immediately, and will complete
with the asio::error::operation_aborted
error.
Thrown on failure. Note that, even if the function indicates an error, the underlying descriptor is closed.