code: func (c *MConnection) sendSomeMsgPackets() bool {
  	// Block until .sendMonitor says we can write.
  	// Once we're ready we send more than we asked for,
  	// but amortized it should even out.
  	c.sendMonitor.Limit(maxMsgPacketTotalSize, atomic.LoadInt64(&c.config.SendRate), true)
  
  	// Now send some msgPackets.
  	for i := 0; i < numBatchMsgPackets; i++ {
  		if c.sendMsgPacket() {
  			return true
  		}
  	}
  	return false
  }
docs: // Returns true if messages from channels were exhausted.
  // Blocks in accordance to .sendMonitor throttling.