cold errors, benchmark updated, unstable features added

This commit is contained in:
Janis 2025-02-20 21:51:48 +01:00
parent 4f9c5c00bb
commit f735348762
3 changed files with 15 additions and 9 deletions

View file

@ -98,20 +98,22 @@ fn join_praetor(b: &mut Bencher) {
let tree = tree::Tree::new(TREE_SIZE, 1u32); let tree = tree::Tree::new(TREE_SIZE, 1u32);
fn sum(tree: &tree::Tree<u32>, node: usize) -> u32 { fn sum(tree: &tree::Tree<u32>, node: usize, scope: &Scope) -> u32 {
let node = tree.get(node); let node = tree.get(node);
Scope::with(|s| { let (l, r) = scope.join(
let (l, r) = s.join( |s| node.left.map(|node| sum(tree, node, s)).unwrap_or_default(),
|| node.left.map(|node| sum(tree, node)).unwrap_or_default(), |s| {
|| node.right.map(|node| sum(tree, node)).unwrap_or_default(), node.right
); .map(|node| sum(tree, node, s))
.unwrap_or_default()
},
);
node.leaf + l + r node.leaf + l + r
})
} }
b.iter(move || { b.iter(move || {
let sum = pool.scope(|_| sum(&tree, tree.root().unwrap())); let sum = pool.scope(|s| sum(&tree, tree.root().unwrap(), s));
// eprintln!("{sum}"); // eprintln!("{sum}");
assert_ne!(sum, 0); assert_ne!(sum, 0);
}); });

View file

@ -2,6 +2,8 @@
vec_deque_pop_if, vec_deque_pop_if,
unsafe_cell_access, unsafe_cell_access,
debug_closure_helpers, debug_closure_helpers,
cell_update,
cold_path,
let_chains let_chains
)] )]

View file

@ -166,6 +166,7 @@ mod job {
any::Any, any::Any,
cell::UnsafeCell, cell::UnsafeCell,
fmt::Debug, fmt::Debug,
hint::cold_path,
marker::PhantomPinned, marker::PhantomPinned,
mem::{self, ManuallyDrop, MaybeUninit}, mem::{self, ManuallyDrop, MaybeUninit},
pin::Pin, pin::Pin,
@ -554,6 +555,7 @@ mod job {
let err = unsafe { (&mut *self.err_or_link.get()).error.take() }; let err = unsafe { (&mut *self.err_or_link.get()).error.take() };
let result: std::thread::Result<T> = if let Some(err) = err { let result: std::thread::Result<T> = if let Some(err) = err {
cold_path();
Err(err) Err(err)
} else { } else {
let val = unsafe { let val = unsafe {