diff --git a/pgconn.go b/pgconn.go index dce4bfb5..3a6c598a 100644 --- a/pgconn.go +++ b/pgconn.go @@ -518,13 +518,14 @@ func (pgConn *PgConn) ayncClose() { go func() { defer pgConn.conn.Close() - ctx, cancel := context.WithTimeout(context.Background(), time.Second*15) + deadline := time.Now().Add(time.Second * 15) + + ctx, cancel := context.WithDeadline(context.Background(), deadline) defer cancel() pgConn.CancelRequest(ctx) - pgConn.contextWatcher.Watch(ctx) - defer pgConn.contextWatcher.Unwatch() + pgConn.conn.SetDeadline(deadline) pgConn.conn.Write([]byte{'X', 0, 0, 0, 4}) pgConn.conn.Read(make([]byte, 1))