code: func (c *Client) disconnectChan() <-chan struct{} {
  	c.mtx.Lock()
  	ch := c.disconnect
  	c.mtx.Unlock()
  	return ch
  }
docs: // disconnectChan returns a copy of the current disconnect channel.  The channel
  // is read protected by the client mutex, and is safe to call while the channel
  // is being reassigned during a reconnect.