From 2b2addebb8cc5dfc7d4d1d34c82f3c46159fea12 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Wed, 21 Jun 2023 17:59:54 -0600 Subject: Appease linter --- listen_unix.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'listen_unix.go') diff --git a/listen_unix.go b/listen_unix.go index e31ecac..8870da5 100644 --- a/listen_unix.go +++ b/listen_unix.go @@ -138,6 +138,26 @@ func reusePort(network, address string, conn syscall.RawConn) error { }) } +type unixListener struct { + *net.UnixListener + mapKey string + count *int32 // accessed atomically +} + +func (uln *unixListener) Close() error { + newCount := atomic.AddInt32(uln.count, -1) + if newCount == 0 { + defer func() { + addr := uln.Addr().String() + unixSocketsMu.Lock() + delete(unixSockets, uln.mapKey) + unixSocketsMu.Unlock() + _ = syscall.Unlink(addr) + }() + } + return uln.UnixListener.Close() +} + // deleteListener is a type that simply deletes itself // from the listenerPool when it closes. It is used // solely for the purpose of reference counting (i.e. -- cgit v1.2.3