func (self *MyConnection) writeMessage(msg codec.Message) error { self.logger.Debug("Write Message [%s]: %+v", msg.GetTypeAsString(), msg) var e error self.Mutex.Lock() self.Last = time.Now() if self.balancer != nil && self.balancer.PerSec > 0 { self.balancer.Execute(func() { _, e = codec.WriteMessageTo(msg, self.Writer) }) } else { _, e = codec.WriteMessageTo(msg, self.Writer) } if e != nil { self.Mutex.Unlock() return e } self.Last = time.Now() self.kickFlusher() self.Mutex.Unlock() return nil }