func (c *Conn) writeProto(p *proto.Proto) error { buf, err := proto.Marshal(p) if err != nil { return err } c.writeLock.Lock() n, err := c.conn.Write(buf) c.writeLock.Unlock() if err != nil { c.close() return err } else if n != len(buf) { c.close() return fmt.Errorf("write short %d != %d", n, len(buf)) } return nil }
func (c *conn) writeProto(p *proto.Proto) error { buf, err := proto.Marshal(p) if err != nil { return err } var n int c.Lock() n, err = c.c.Write(buf) c.Unlock() if err != nil { c.c.Close() return err } else if n != len(buf) { c.c.Close() return fmt.Errorf("write incomplete, %d less than %d", n, len(buf)) } else { return nil } }