code: func (c *MConnection) sendMsgPacket() bool {
  	// Choose a channel to create a msgPacket from.
  	// The chosen channel will be the one whose recentlySent/priority is the least.
  	var leastRatio float32 = math.MaxFloat32
  	var leastChannel *Channel
  	for _, channel := range c.channels {
  		// If nothing to send, skip this channel
  		if !channel.isSendPending() {
  			continue
  		}
  		// Get ratio, and keep track of lowest ratio.
  		ratio := float32(channel.recentlySent) / float32(channel.priority)
  		if ratio < leastRatio {
  			leastRatio = ratio
  			leastChannel = channel
  		}
  	}
  
  	// Nothing to send?
  	if leastChannel == nil {
  		return true
  	} else {
  		// log.Info("Found a msgPacket to send")
  	}
  
  	// Make & send a msgPacket from this channel
  	n, err := leastChannel.writeMsgPacketTo(c.bufWriter)
  	if err != nil {
  		log.Warn("Failed to write msgPacket", "error", err)
  		c.stopForError(err)
  		return true
  	}
  	c.sendMonitor.Update(int(n))
  	c.flushTimer.Set()
  	return false
  }
docs: // Returns true if messages from channels were exhausted.