tor-proto: channel `Reactor::run` is not cancellation safe
VerifiedChannel::finish
returns the tuple (Arc<Channel>, Reactor)
. I think it's expected that the calling code will run Reactor::run()
in a new task, but it's not guaranteed that the returned future will be run in a task, run to completion (for example using futures::future::Abortable
), not panic, or even run at all. For example if the returned future is dropped immediately without being run, the Channel::is_closing()
will return false
forever.
Edited by opara