code: func (c *chanList) dropAll() []*channel {
  	c.Lock()
  	defer c.Unlock()
  	var r []*channel
  
  	for _, ch := range c.chans {
  		if ch == nil {
  			continue
  		}
  		r = append(r, ch)
  	}
  	c.chans = nil
  	return r
  }
docs: // dropAll forgets all channels it knows, returning them in a slice.