#[cfg(not(feature = "async"))]
fn main() {
use std::thread::spawn;
use synchronized::sync;
let mut join_all = Vec::new();
for thread_id in 0..5 {
let join = spawn(move || {
let result = sync!(
(sync_let: String = String::new(), count: usize = 0) {
if thread_id == 0 {
assert!(sync_let.is_empty());
assert_eq!(count, &0);
}
sync_let.push_str(&thread_id.to_string());
sync_let.push(' ');
*count += 1;
sync_let.clone()
}
);
println!("#[id: {}] {}", thread_id, result);
});
if thread_id == 0 {
let _e = join.join();
continue;
}
join_all.push(join);
}
for tjoin in join_all {
let _e = tjoin.join();
}
}
#[cfg(feature = "async")]
fn main() {
println!("This example only builds and runs with --feature=\"sync\"");
}