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(); }