You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/net/tstun
Josh Bleecher Snyder cc23049cd2 net/tstun: remove multi-case selects from hot code
Every TUN Read went through several multi-case selects.
We know from past experience with wireguard-go that these are slow
and cause scheduler churn.

The selects served two purposes: they separated errors from data and
gracefully handled shutdown. The first is fairly easy to replace by sending
errors and data over a single channel. The second, less so.

We considered a few approaches: Intricate webs of channels,
global condition variables. They all get ugly fast.

Instead, let's embrace the ugly and handle shutdown ungracefully.
It's horrible, but the horror is simple and localized.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
5 years ago
..
fake.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 5 years ago
ifstatus_noop.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 5 years ago
ifstatus_windows.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 5 years ago
tun.go net/tstun: add a debug envvar to override tun MTU. 5 years ago
tun_notwindows.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 5 years ago
tun_windows.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 5 years ago
wrap.go net/tstun: remove multi-case selects from hot code 5 years ago
wrap_test.go go.mod: update netaddr 5 years ago