From 4dc2e8a0adc10906ff6a0c16e6ec46bc73d15a14 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Wed, 20 Apr 2022 12:01:36 +0200 Subject: [PATCH] Try harder to use user cpu time --- src/bin/test.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/bin/test.rs b/src/bin/test.rs index 2bfe7cfc..a0793785 100644 --- a/src/bin/test.rs +++ b/src/bin/test.rs @@ -352,15 +352,24 @@ mod mac { let task = mach2::traps::mach_task_self(); let thread = mach2::mach_init::mach_thread_self(); - // Busy loop for 1 second just so we accrue user thread time - std::thread::spawn(move || { + fn count(seconds: u64) { + // Busy loop for 1 second just so we accrue user thread time let start = std::time::Instant::now(); - while (std::time::Instant::now() - start).as_secs() < 1 { - eprint!("."); + let mut counter = 0; + while (std::time::Instant::now() - start).as_secs() < seconds { + counter += 1; + std::thread::sleep(std::time::Duration::from_millis(10)); } - }) - .join() - .unwrap(); + + eprintln!("{:?} counted to {}", std::thread::current().id(), counter); + } + + // Start some threads + let threads = (0..20).map(|_| std::thread::spawn(move || count(1))); + + for thread in threads { + thread.join().unwrap(); + } println!("{task} {thread}");