From 5f0c8b942d93be6ac36a156c0ba44c86c3698f91 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 11 Mar 2021 09:29:10 -0700 Subject: [PATCH] device: signal to close device in separate routine Otherwise we wind up deadlocking. Signed-off-by: Jason A. Donenfeld --- device/send.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/send.go b/device/send.go index cb1607b..a437cf1 100644 --- a/device/send.go +++ b/device/send.go @@ -228,7 +228,7 @@ func (device *Device) RoutineReadFromTUN() { if err != nil { if !device.isClosed() { device.log.Errorf("Failed to read packet from TUN device: %v", err) - device.Close() + go device.Close() } device.PutMessageBuffer(elem.buffer) device.PutOutboundElement(elem)