diff --git a/connection.go b/connection.go index cd07ae0..d35184b 100644 --- a/connection.go +++ b/connection.go @@ -449,17 +449,15 @@ func (c *Connection) Reply(ctx context.Context, opErr error) { c.errorLogger.Printf("%T error: %v", op, opErr) } - // Send the reply to the kernel. - replyMsg := kernelResponse(m.Header().Unique, op, opErr, c.protocol) - if replyMsg != nil { - if err := c.writeMessage(replyMsg); err != nil { - if c.errorLogger != nil { - c.errorLogger.Printf("writeMessage: %v", err) - } + // Send the reply to the kernel, if one is required. + outMsg := c.kernelResponse(m.Header().Unique, op, opErr) + if outMsg != nil { + err := c.writeMessage(outMsg.Bytes()) + c.putOutMessage(outMsg) - return + if err != nil && c.errorLogger != nil { + c.errorLogger.Printf("writeMessage: %v", err) } - } }