Files
firezone/rust
Thomas Eizinger 16b41bf14c refactor(connlib): encapsulate Device (#2591)
We encapsulate the internals of `Device` by providing high-level
functions on `Device` itself and make all the fields private. From the
outside, each consumer this only has an `Arc<Device>` that they can
interact with.

To achieve this, we use the `arc-swap` crate to atomically swap out the
reference to the `Arc<Device>` instead of relying on an `RwLock`. Note
that the _reference_ to this `ArcSwapOption` is also wrapped in an `Arc`
because we need to share this pointer across many `peer_handler`s.

Once we get rid of `Arc<Tunnel>`, this will become a lot simpler.
2023-11-08 06:52:21 +00:00
..
2023-05-10 07:58:32 -07:00
2023-10-27 13:10:36 -06:00