tailscale/wgengine/magicsock
Josh Bleecher Snyder de4696da10 wgengine/magicsock: fix deadlock on shutdown
This fixes a deadlock on shutdown.
One goroutine is waiting to send on c.derpRecvCh before unlocking c.mu.
The other goroutine is waiting to lock c.mu before receiving from c.derpRecvCh.

#3736 has a more detailed explanation of the sequence of events.

Fixes #3736

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2022-01-19 14:39:28 -08:00
..
debughttp.go wgengine/magicsock: add HTML debug handler to see magicsock state 2021-12-21 14:26:52 -08:00
debugknobs_ios.go wgengine/magicsock: remove unused debug knob. 2021-09-01 15:13:21 -07:00
debugknobs.go wgengine/magicsock: remove unused debug knob. 2021-09-01 15:13:21 -07:00
discopingpurpose_string.go wgengine/magicsock: make discoPingPurpose a stringer 2020-09-14 14:29:28 -07:00
magicsock_test.go wgengine/magicsock: fix watchdog timeout on Close when IPv6 not available 2022-01-06 13:24:59 -08:00
magicsock.go wgengine/magicsock: fix deadlock on shutdown 2022-01-19 14:39:28 -08:00