Closes the socket and inbound. Calling it again does nothing.
@override void destroy() { if (_closed) return; _closed = true; _port.close(); _held.clear(); _inbound.close(); }