Fixed memory leak of connection (#165)
Signed-off-by: xiaolong.ran <rxl@apache.org>
diff --git a/pulsar/internal/connection_pool.go b/pulsar/internal/connection_pool.go
index 14f7753..b91324a 100644
--- a/pulsar/internal/connection_pool.go
+++ b/pulsar/internal/connection_pool.go
@@ -68,11 +68,13 @@
}
// Try to create a new connection
- newCnx, wasCached := p.pool.LoadOrStore(logicalAddr.Host,
- newConnection(logicalAddr, physicalAddr, p.tlsOptions, p.connectionTimeout, p.auth))
+ newConnection := newConnection(logicalAddr, physicalAddr, p.tlsOptions, p.connectionTimeout, p.auth)
+ newCnx, wasCached := p.pool.LoadOrStore(logicalAddr.Host, newConnection)
cnx := newCnx.(*connection)
if !wasCached {
cnx.start()
+ } else {
+ newConnection.Close()
}
if err := cnx.waitUntilReady(); err != nil {