The TransportReader/Writer's dispose() method should handle that, and ConnectionManager is responsible for calling it.