diff options
Diffstat (limited to 'messagebus')
-rw-r--r-- | messagebus/src/vespa/messagebus/routable.h | 7 | ||||
-rw-r--r-- | messagebus/src/vespa/messagebus/routing/routingnode.cpp | 2 | ||||
-rw-r--r-- | messagebus/src/vespa/messagebus/sendproxy.cpp | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/messagebus/src/vespa/messagebus/routable.h b/messagebus/src/vespa/messagebus/routable.h index dbae90c9aa1..37b15199f45 100644 --- a/messagebus/src/vespa/messagebus/routable.h +++ b/messagebus/src/vespa/messagebus/routable.h @@ -24,9 +24,9 @@ namespace mbus { */ class Routable { private: - Context _context; - CallStack _stack; - Trace _trace; + Context _context; + CallStack _stack; + mutable Trace _trace; public: /** @@ -90,6 +90,7 @@ public: * @return Trace object */ Trace &getTrace() { return _trace; } + Trace && steal_trace() const { return std::move(_trace); } /** * Access the Trace object for this Routable. The Trace is part of the diff --git a/messagebus/src/vespa/messagebus/routing/routingnode.cpp b/messagebus/src/vespa/messagebus/routing/routingnode.cpp index cc8dd236428..5a70f510dcc 100644 --- a/messagebus/src/vespa/messagebus/routing/routingnode.cpp +++ b/messagebus/src/vespa/messagebus/routing/routingnode.cpp @@ -184,7 +184,7 @@ RoutingNode::setReply(Reply::UP reply) { if (reply) { _shouldRetry = _resender != nullptr && _resender->shouldRetry(*reply); - _trace.addChild(std::move(reply->getTrace())); + _trace.addChild(reply->steal_trace()); } _reply = std::move(reply); } diff --git a/messagebus/src/vespa/messagebus/sendproxy.cpp b/messagebus/src/vespa/messagebus/sendproxy.cpp index 9d8bcb965d6..ff514f788cd 100644 --- a/messagebus/src/vespa/messagebus/sendproxy.cpp +++ b/messagebus/src/vespa/messagebus/sendproxy.cpp @@ -55,7 +55,7 @@ SendProxy::handleReply(Reply::UP reply) } trace.clear(); } else if (trace.getLevel() > 0) { - trace.addChild(std::move(reply->getTrace())); + trace.addChild(reply->steal_trace()); trace.normalize(); } reply->swapState(*_msg); |