Skip to content

Commit 01881bd

Browse files
authored
Merge pull request #1175 from ldorau/Use_atomics_in_critnib_find_
Use atomics in critnib find_*
2 parents 23cbc0c + adce85f commit 01881bd

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/critnib/critnib.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,9 @@ find_predecessor(struct critnib_node *__restrict n) {
525525
while (1) {
526526
int nib;
527527
for (nib = NIB; nib >= 0; nib--) {
528-
if (n->child[nib]) {
528+
struct critnib_node *m;
529+
utils_atomic_load_acquire_ptr((void **)&n->child[nib], (void **)&m);
530+
if (m) {
529531
break;
530532
}
531533
}
@@ -534,7 +536,7 @@ find_predecessor(struct critnib_node *__restrict n) {
534536
return NULL;
535537
}
536538

537-
n = n->child[nib];
539+
utils_atomic_load_acquire_ptr((void **)&n->child[nib], (void **)&n);
538540
if (is_leaf(n)) {
539541
return to_leaf(n);
540542
}

0 commit comments

Comments
 (0)