We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent b442a65 commit d71076aCopy full SHA for d71076a
src/critnib/critnib.c
@@ -524,7 +524,9 @@ find_predecessor(struct critnib_node *__restrict n) {
524
while (1) {
525
int nib;
526
for (nib = NIB; nib >= 0; nib--) {
527
- if (n->child[nib]) {
+ struct critnib_node *m;
528
+ utils_atomic_load_acquire_ptr((void **)&n->child[nib], (void **)&m);
529
+ if (m) {
530
break;
531
}
532
@@ -533,7 +535,7 @@ find_predecessor(struct critnib_node *__restrict n) {
533
535
return NULL;
534
536
537
- n = n->child[nib];
538
+ utils_atomic_load_acquire_ptr((void **)&n->child[nib], (void **)&n);
539
if (is_leaf(n)) {
540
return to_leaf(n);
541
0 commit comments