Skip to content

Commit e358b27

Browse files
committed
Fix
1 parent 41a8a33 commit e358b27

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/critnib/critnib.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,12 @@ static struct critnib_node *alloc_node(struct critnib *__restrict c) {
310310
static void add_to_deleted_leaf_list(struct critnib *__restrict c,
311311
struct critnib_leaf *__restrict k) {
312312
assert(k);
313+
struct critnib_leaf *deleted_leaf;
314+
313315
do {
314-
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);
315319
} while (!utils_compare_exchange_u64(
316320
(uint64_t *)&c->deleted_leaf, (uint64_t *)&k->value, (uint64_t *)&k));
317321
}

0 commit comments

Comments
 (0)