mirror of https://github.com/jackc/pgx.git
Make Conn Close idempotent
* die (which is called by Close) now closes underlying connectionscan-io
parent
6c7f173b08
commit
7a8e80ac0d
8
conn.go
8
conn.go
|
@ -232,7 +232,13 @@ func Connect(config ConnConfig) (c *Conn, err error) {
|
|||
}
|
||||
}
|
||||
|
||||
// Close closes a connection. It is safe to call Close on a already closed
|
||||
// connection.
|
||||
func (c *Conn) Close() (err error) {
|
||||
if !c.IsAlive() {
|
||||
return nil
|
||||
}
|
||||
|
||||
err = c.txMsg('X', c.getBuf(), true)
|
||||
c.die(errors.New("Closed"))
|
||||
c.logger.Info("Closed connection")
|
||||
|
@ -1190,4 +1196,6 @@ func (c *Conn) getBuf() *bytes.Buffer {
|
|||
func (c *Conn) die(err error) {
|
||||
c.alive = false
|
||||
c.causeOfDeath = err
|
||||
c.writer.Flush()
|
||||
c.conn.Close()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue