4 ms·
I am not sure what are you trying to represent with this example, but here is the exact same thing without any unsafe: use rayon::prelude::*; use std::time::{
by anarki8 2y ago
I am not sure what are you trying to represent with this example, but here is the exact same thing without any unsafe:
use rayon::prelude::*;
use std::time::{Instant, Duration};
use std::sync::atomic::{AtomicUsize, Ordering};
fn main() {
let finish_at = Instant::now() + Duration::from_secs(1);
let number = AtomicUsize::new(0);
(0..10).into_par_iter().for_each(|_| {
while finish_at > Instant::now() {
number.fetch_add(1, Ordering::Relaxed);
}
});
}
You can make it even simpler if you would use Mutex instead of atomics. Atomics are more performant though.