From 581bd6c8ed96bbe81ca4e80b132effbaa1bf643f Mon Sep 17 00:00:00 2001 From: Alvin Moore Date: Mon, 28 Aug 2017 10:53:56 -0700 Subject: [PATCH] Added option to delay the displaying of the simulation workers --- fdbserver/workloads/DummyWorkload.actor.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/fdbserver/workloads/DummyWorkload.actor.cpp b/fdbserver/workloads/DummyWorkload.actor.cpp index a936e5a182..ee0bd55cf8 100644 --- a/fdbserver/workloads/DummyWorkload.actor.cpp +++ b/fdbserver/workloads/DummyWorkload.actor.cpp @@ -24,10 +24,12 @@ // The workload that do nothing. It can be used for waiting for quiescence struct DummyWorkload : TestWorkload { bool displayWorkers; + double displayDelay; DummyWorkload(WorkloadContext const& wcx) : TestWorkload(wcx) { displayWorkers = getOption(options, LiteralStringRef("displayWorkers"), true); + displayDelay = getOption(options, LiteralStringRef("displayDelay"), 0.0); } virtual std::string description() { @@ -35,8 +37,16 @@ struct DummyWorkload : TestWorkload { } virtual Future start(Database const& cx) { - if ((clientId == 0) && (displayWorkers)) - g_simulator.displayWorkers(); + if ((clientId == 0) && (displayWorkers)) { + return _start(this, cx); + } + return Void(); + } + + ACTOR static Future _start( DummyWorkload* self, Database cx) { + if (self->displayDelay > 0.0) + Void _ = wait(delay(self->displayDelay)); + g_simulator.displayWorkers(); return Void(); }