Skip to content

Commit 5bb378d

Browse files
committed
Move return when connection is closed down.
1 parent e155ae2 commit 5bb378d

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

service/listeners.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -285,12 +285,10 @@ func (m *multiPacketListener) Acquire() (net.PacketConn, error) {
285285
m.readCh = make(chan readRequest)
286286
m.doneCh = make(chan struct{})
287287
go func() {
288+
defer close(m.readCh)
288289
buffer := make([]byte, serverUDPBufferSize)
289290
for {
290291
n, addr, err := m.pc.ReadFrom(buffer)
291-
if errors.Is(err, net.ErrClosed) {
292-
return
293-
}
294292
buffer = buffer[:n]
295293
select {
296294
case req := <-m.readCh:
@@ -299,10 +297,13 @@ func (m *multiPacketListener) Acquire() (net.PacketConn, error) {
299297
n int
300298
addr net.Addr
301299
err error
302-
}{n, addr, err}
300+
}{n, addr, err}
303301
case <-m.doneCh:
304302
return
305303
}
304+
if errors.Is(err, net.ErrClosed) {
305+
return
306+
}
306307
}
307308
}()
308309
}

0 commit comments

Comments
 (0)