File tree 1 file changed +3
-3
lines changed
1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -537,7 +537,6 @@ find_predecessor(struct critnib_node *__restrict n) {
537
537
}
538
538
539
539
utils_atomic_load_acquire_ptr ((void * * )& n -> child [nib ], (void * * )& n );
540
-
541
540
if (!n ) {
542
541
return NULL ;
543
542
}
@@ -644,7 +643,9 @@ void *critnib_find_le(struct critnib *c, word key) {
644
643
static struct critnib_leaf * find_successor (struct critnib_node * __restrict n ) {
645
644
while (1 ) {
646
645
unsigned nib ;
646
+ struct critnib_node * m = NULL ;
647
647
for (nib = 0 ; nib <= NIB ; nib ++ ) {
648
+ utils_atomic_load_acquire_ptr ((void * * )& n -> child [nib ], (void * * )& m );
648
649
if (n -> child [nib ]) {
649
650
break ;
650
651
}
@@ -654,8 +655,7 @@ static struct critnib_leaf *find_successor(struct critnib_node *__restrict n) {
654
655
return NULL ;
655
656
}
656
657
657
- n = n -> child [nib ];
658
-
658
+ utils_atomic_load_acquire_ptr ((void * * )& n -> child [nib ], (void * * )& n );
659
659
if (!n ) {
660
660
return NULL ;
661
661
}
You can’t perform that action at this time.
0 commit comments