aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-23 13:30:45 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-23 13:30:45 +0000
commitc3c152485a4e2d246d4dd50909a3481cdce71347 (patch)
tree2964c046f8f38abf4f40a509cef91f4a7be5c417 /messagebus
parentca29131b659c51935fe6a6cdf3ae93207c79e714 (diff)
Steal the traces explicit and force moving of traces. Also hide access to the root.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/vespa/messagebus/routable.h7
-rw-r--r--messagebus/src/vespa/messagebus/routing/routingnode.cpp2
-rw-r--r--messagebus/src/vespa/messagebus/sendproxy.cpp2
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);