func unlistenAndRelease(pool *pgx.ConnPool, conn *pgx.Conn, channel string) { _, err := conn.Exec(fmt.Sprintf(sqlUnlisten, channel)) if err != nil { conn.Close() return } pool.Release(conn) }
func listenAndPoolUnlistens(pool *pgx.ConnPool, actionNum int) error { conn, err := pool.Acquire() if err != nil { return err } defer pool.Release(conn) err = conn.Listen("stress") if err != nil { return err } _, err = conn.WaitForNotification(100 * time.Millisecond) if err == pgx.ErrNotificationTimeout { return nil } return err }