Skip to content

Commit 691d11a

Browse files
committed
start reading the output as soon as process is started
1 parent 581098a commit 691d11a

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

src/BenchmarkDotNet/Toolchains/DotNetCli/DotNetCliExecutor.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,23 +80,22 @@ private ExecuteResult Execute(BenchmarkCase benchmarkCase,
8080
using (ConsoleExitHandler consoleExitHandler = new (process, logger))
8181
using (AsyncProcessOutputReader processOutputReader = new (process, logOutput: true, logger, readStandardError: false))
8282
{
83-
var loggerWithDiagnoser = new Broker(logger, process, diagnoser, benchmarkCase, benchmarkId, inputFromBenchmark, acknowledgments);
83+
Broker broker = new (logger, process, diagnoser, benchmarkCase, benchmarkId, inputFromBenchmark, acknowledgments);
8484

8585
logger.WriteLineInfo($"// Execute: {process.StartInfo.FileName} {process.StartInfo.Arguments} in {process.StartInfo.WorkingDirectory}");
8686

8787
diagnoser?.Handle(HostSignal.BeforeProcessStart, new DiagnoserActionParameters(process, benchmarkCase, benchmarkId));
8888

8989
process.Start();
90+
processOutputReader.BeginRead();
9091

9192
process.EnsureHighPriority(logger);
9293
if (benchmarkCase.Job.Environment.HasValue(EnvironmentMode.AffinityCharacteristic))
9394
{
9495
process.TrySetAffinity(benchmarkCase.Job.Environment.Affinity, logger);
9596
}
9697

97-
processOutputReader.BeginRead();
98-
99-
loggerWithDiagnoser.ProcessData();
98+
broker.ProcessData();
10099

101100
if (!process.WaitForExit(milliseconds: (int)ExecuteParameters.ProcessExitTimeout.TotalMilliseconds))
102101
{
@@ -113,8 +112,8 @@ private ExecuteResult Execute(BenchmarkCase benchmarkCase,
113112
return new ExecuteResult(true,
114113
process.HasExited ? process.ExitCode : null,
115114
process.Id,
116-
loggerWithDiagnoser.Results,
117-
loggerWithDiagnoser.PrefixedOutput,
115+
broker.Results,
116+
broker.PrefixedOutput,
118117
processOutputReader.GetOutputLines(),
119118
launchIndex);
120119
}

src/BenchmarkDotNet/Toolchains/Executor.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,14 @@ private static ExecuteResult Execute(Process process, BenchmarkCase benchmarkCas
6868
logger.WriteLineInfo($"// Execute: {process.StartInfo.FileName} {process.StartInfo.Arguments} in {process.StartInfo.WorkingDirectory}");
6969

7070
process.Start();
71+
processOutputReader.BeginRead();
7172

7273
process.EnsureHighPriority(logger);
7374
if (benchmarkCase.Job.Environment.HasValue(EnvironmentMode.AffinityCharacteristic))
7475
{
7576
process.TrySetAffinity(benchmarkCase.Job.Environment.Affinity, logger);
7677
}
7778

78-
processOutputReader.BeginRead();
79-
8079
broker.ProcessData();
8180

8281
if (!process.WaitForExit(milliseconds: (int)ExecuteParameters.ProcessExitTimeout.TotalMilliseconds))

src/BenchmarkDotNet/Toolchains/MonoWasm/WasmExecutor.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ private static ExecuteResult Execute(Process process, BenchmarkCase benchmarkCas
8080
logger.WriteLineInfo($"// Execute: {process.StartInfo.FileName} {process.StartInfo.Arguments} in {process.StartInfo.WorkingDirectory}");
8181

8282
process.Start();
83-
8483
processOutputReader.BeginRead();
8584

8685
process.EnsureHighPriority(logger);

0 commit comments

Comments
 (0)