  c.mu.Lock()  defer c.mu.Unlock()  return c.write(r, body, true, true) }  func (c *goRpcCodec) WriteResponse(r *rpc.Response, body interface{}) error {  c.mu.Lock()  defer c.mu.Unlock()  return c.write(r, body, true, true) }  func (c *goRpcCodec) ReadResponseHeader(r *rpc.Response) error {  return c.read(r) }  func (c *goRpcCodec) ReadRequestHeader(r *rpc.Request) error {  return c.read(r) }  func (c *goRpcCodec) ReadRequestBody(body interface{}) error {  return c.read(body) }  // -------------------------------------  