diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:25 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:25 +0000 |
commit | 5363f350887b1e5b5dd21a86f88c8af9d7fea6da (patch) | |
tree | 35ca005eb6e0e9a1ba3bb5dbc033209ad445dc17 /vendor/rayon-core/src/log.rs | |
parent | Adding debian version 1.66.0+dfsg1-1. (diff) | |
download | rustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.tar.xz rustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.zip |
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/rayon-core/src/log.rs')
-rw-r--r-- | vendor/rayon-core/src/log.rs | 64 |
1 files changed, 27 insertions, 37 deletions
diff --git a/vendor/rayon-core/src/log.rs b/vendor/rayon-core/src/log.rs index e1ff827df..7b6daf0ab 100644 --- a/vendor/rayon-core/src/log.rs +++ b/vendor/rayon-core/src/log.rs @@ -93,6 +93,9 @@ pub(super) enum Event { /// A job was removed from the global queue. JobUninjected { worker: usize }, + /// A job was broadcasted to N threads. + JobBroadcast { count: usize }, + /// When announcing a job, this was the value of the counters we observed. /// /// No effect on thread state, just a debugging event. @@ -124,15 +127,15 @@ impl Logger { let (sender, receiver) = crossbeam_channel::unbounded(); - if env_log.starts_with("tail:") { - let filename = env_log["tail:".len()..].to_string(); + if let Some(filename) = env_log.strip_prefix("tail:") { + let filename = filename.to_string(); ::std::thread::spawn(move || { Self::tail_logger_thread(num_workers, filename, 10_000, receiver) }); } else if env_log == "all" { ::std::thread::spawn(move || Self::all_logger_thread(num_workers, receiver)); - } else if env_log.starts_with("profile:") { - let filename = env_log["profile:".len()..].to_string(); + } else if let Some(filename) = env_log.strip_prefix("profile:") { + let filename = filename.to_string(); ::std::thread::spawn(move || { Self::profile_logger_thread(num_workers, filename, 10_000, receiver) }); @@ -140,9 +143,9 @@ impl Logger { panic!("RAYON_LOG should be 'tail:<file>' or 'profile:<file>'"); } - return Logger { + Logger { sender: Some(sender), - }; + } } fn disabled() -> Logger { @@ -175,19 +178,12 @@ impl Logger { let timeout = std::time::Duration::from_secs(30); loop { - loop { - match receiver.recv_timeout(timeout) { - Ok(event) => { - if let Event::Flush = event { - break; - } else { - events.push(event); - } - } - - Err(_) => break, + while let Ok(event) = receiver.recv_timeout(timeout) { + if let Event::Flush = event { + break; } + events.push(event); if events.len() == capacity { break; } @@ -219,31 +215,25 @@ impl Logger { let mut skipped = false; loop { - loop { - match receiver.recv_timeout(timeout) { - Ok(event) => { - if let Event::Flush = event { - // We ignore Flush events in tail mode -- - // we're really just looking for - // deadlocks. - continue; - } else { - if events.len() == capacity { - let event = events.pop_front().unwrap(); - state.simulate(&event); - skipped = true; - } - - events.push_back(event); - } + while let Ok(event) = receiver.recv_timeout(timeout) { + if let Event::Flush = event { + // We ignore Flush events in tail mode -- + // we're really just looking for + // deadlocks. + continue; + } else { + if events.len() == capacity { + let event = events.pop_front().unwrap(); + state.simulate(&event); + skipped = true; } - Err(_) => break, + events.push_back(event); } } if skipped { - write!(writer, "...\n").unwrap(); + writeln!(writer, "...").unwrap(); skipped = false; } @@ -417,7 +407,7 @@ impl SimulatorState { } } - write!(w, "\n")?; + writeln!(w)?; Ok(()) } } |