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 {