diff --git a/clients/drcachesim/analyzer.cpp b/clients/drcachesim/analyzer.cpp index ddd51ba291f..c158c00cd84 100644 --- a/clients/drcachesim/analyzer.cpp +++ b/clients/drcachesim/analyzer.cpp @@ -560,6 +560,7 @@ analyzer_tmpl_t::process_tasks(analyzer_worker_data_t *w // stream ordinals we would need to add a scheduler API to inject it. record = create_wait_marker(); } else if (status == sched_type_t::STATUS_IDLE) { + assert(shard_type_ == SHARD_BY_CORE); // We let tools know about idle time so they can analyze cpu usage. // We synthesize a record here. If we wanted this to count toward output // stream ordinals we would need to add a scheduler API to inject it. diff --git a/clients/drcachesim/scheduler/scheduler.cpp b/clients/drcachesim/scheduler/scheduler.cpp index 1d58484ba64..a4109158902 100644 --- a/clients/drcachesim/scheduler/scheduler.cpp +++ b/clients/drcachesim/scheduler/scheduler.cpp @@ -2280,7 +2280,8 @@ template typename scheduler_tmpl_t::stream_status_t scheduler_tmpl_t::eof_or_idle(output_ordinal_t output) { - if (live_input_count_.load(std::memory_order_acquire) == 0) { + if (options_.mapping == MAP_TO_CONSISTENT_OUTPUT || + live_input_count_.load(std::memory_order_acquire) == 0) { return sched_type_t::STATUS_EOF; } else { outputs_[output].waiting = true;