Skip to content

Proto: Refactor Channel to always be Arc.

Nick Mathewson requested to merge nickm/arti:chan_arc into main

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.

Merge request reports

Loading