From a3965934a1953f03399531db3adc8ffa9c6eef96 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Tue, 1 Dec 2015 13:32:05 +0200 Subject: [PATCH] Simplify GC life by zeroing references to closed worker chans and client conns --- client.go | 1 + workerpool.go | 1 + 2 files changed, 2 insertions(+) diff --git a/client.go b/client.go index 162448a..241bc9f 100644 --- a/client.go +++ b/client.go @@ -901,6 +901,7 @@ func (c *HostClient) connsCleaner() { // Do not copy(c.conns, c.conns[1:]), since this may be // quite slow for multi-million conns count. // Just move c.conns one position ahead. + c.conns[0] = nil c.conns = c.conns[1:] } if c.connsCount == 0 { diff --git a/workerpool.go b/workerpool.go index 6119a62..aeaf929 100644 --- a/workerpool.go +++ b/workerpool.go @@ -87,6 +87,7 @@ func (wp *workerPool) clean() { // do not do copy(chans, chans[1:]), since this may be quite slow // for multi-million concurrent connections. Just move chans // pointer one position ahead. + chans[0] = nil chans = chans[1:] wp.workersCount-- }