Use fine grained locks while sending NUD probes
Previously when sending probe messages, we would hold a shared lock
which lead to deadlocks (due to synchronous packet loooping (e.g. pipe
and loopback link endpoints)) and lock contention.
Writing packets may be an expensive operation which could prevent other
goroutines from doing meaningful work if a shared lock is held while
This change upates the NUD timers to not hold shared locks while
This is a cherry-pick of 1d0fbea. This changed required manual updates
as it does not include 56d1850 or 4eaf674.
1 file changed