Proto: Refactor Channel to always be Arc.
A while back, we made this change for ClientCirc, making it explicitly Arc<>
instead of having it cloned all over the place.
This branch makes the same change for Channel
. The benefits of this change are:
-
It makes the relationship between Channel struct and the underlying channel more clear.
-
It enables Channel to participate in the RPC system, where everything has to be an Arc<.>
-
It enables us to have a Weak, if we ever want to.
-
It will let us move various members out of ChannelDetails.
Since this is an internal API break, I'd like @Diziet or @gabi-250 to sign off on it before it merges. It comes out of an attempt to make reactors more comprehensible.