From 3ea82d008c8f26157e8d0b568b885536efb6a7b0 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 14 Oct 2024 15:34:08 +0200 Subject: [PATCH] Cpu perf (#2596) * break when there's nothing to read Signed-off-by: Wang, Yi A * Different approach, only listen on stdin when `LOG_LEVEL=debug` (which is where dropping to a debugger is important). --------- Signed-off-by: Wang, Yi A Co-authored-by: Wang, Yi A --- launcher/src/main.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 214adcdc..42962dff 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -944,17 +944,19 @@ fn shard_manager( } }); // We read stdin in another thread as it seems that lines() can block in some cases - thread::spawn(move || { - let mut stdin = io::stdin(); // We get `Stdin` here. - loop { - let mut buffer = vec![0; 4096]; - if let Ok(n) = stdin.read(&mut buffer) { - if n > 0 { - let _ = pstdin.write_all(&buffer[..n]); + if LevelFilter::current() >= tracing::Level::DEBUG { + thread::spawn(move || { + let mut stdin = io::stdin(); // We get `Stdin` here. + loop { + let mut buffer = vec![0; 4096]; + if let Ok(n) = stdin.read(&mut buffer) { + if n > 0 { + let _ = pstdin.write_all(&buffer[..n]); + } } } - } - }); + }); + } let mut ready = false; let start_time = Instant::now();