From bc0be4d6a75968d3fb96c8592a65eda566d66210 Mon Sep 17 00:00:00 2001 From: ucwong Date: Wed, 1 Apr 2020 08:21:25 +0000 Subject: [PATCH] p2p/discover | sync close tab when udp server is stopped --- p2p/discover/v4_udp.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go index bfb66fcb19..7c3f3c12a1 100644 --- a/p2p/discover/v4_udp.go +++ b/p2p/discover/v4_udp.go @@ -280,7 +280,11 @@ func ListenV4(c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { return nil, err } t.tab = tab - go tab.loop() + t.wg.Add(1) + go func() { + defer t.wg.Done() + tab.loop() + }() t.wg.Add(2) go t.loop() @@ -298,8 +302,8 @@ func (t *UDPv4) Close() { t.closeOnce.Do(func() { t.cancelCloseCtx() t.conn.Close() - t.wg.Wait() t.tab.close() + t.wg.Wait() }) }