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 41a8a33 commit e358b27Copy full SHA for e358b27
src/critnib/critnib.c
@@ -310,8 +310,12 @@ static struct critnib_node *alloc_node(struct critnib *__restrict c) {
310
static void add_to_deleted_leaf_list(struct critnib *__restrict c,
311
struct critnib_leaf *__restrict k) {
312
assert(k);
313
+ struct critnib_leaf *deleted_leaf;
314
+
315
do {
- utils_atomic_store_release_ptr(&k->value, c->deleted_leaf);
316
+ utils_atomic_load_acquire_ptr((void **)&c->deleted_leaf,
317
+ (void **)&deleted_leaf);
318
+ utils_atomic_store_release_ptr(&k->value, deleted_leaf);
319
} while (!utils_compare_exchange_u64(
320
(uint64_t *)&c->deleted_leaf, (uint64_t *)&k->value, (uint64_t *)&k));
321
}
0 commit comments