code: func (db *DB) Listen(channel string, log log15.Logger) (*Listener, error) {
  	conn, err := db.Acquire()
  	if err != nil {
  		return nil, err
  	}
  	l := &Listener{
  		Notify:  make(chan *pgx.Notification),
  		channel: channel,
  		log:     log,
  		db:      db,
  		conn:    conn,
  	}
  	if err := l.conn.Listen(channel); err != nil {
  		l.Close()
  		l.db.Release(l.conn)
  		return nil, err
  	}
  	go l.listen()
  	return l, nil
  }
docs: // Listen creates a listener for the given channel, returning the listener
  // and the first connection error (nil on successful connection).