diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/page.c | 2 | ||||
-rw-r--r-- | src/segment.c | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -159,7 +159,7 @@ static void _mi_page_thread_free_collect(mi_page_t* page) do { head = mi_tf_block(tfree); tfreex = mi_tf_set_block(tfree,NULL); - } while (!mi_atomic_cas_weak(&page->xthread_free, &tfree, tfreex)); + } while (!mi_atomic_cas_weak_acq_rel(&page->xthread_free, &tfree, tfreex)); // return if the list is empty if (head == NULL) return; diff --git a/src/segment.c b/src/segment.c index 5af98b1..5523055 100644 --- a/src/segment.c +++ b/src/segment.c @@ -982,7 +982,7 @@ static mi_segment_t* mi_abandoned_pop(void) { mi_segment_t* anext = mi_atomic_read_ptr_relaxed(mi_segment_t, &segment->abandoned_next); next = mi_tagged_segment(anext, ts); // note: reads the segment's `abandoned_next` field so should not be decommitted } - } while (segment != NULL && !mi_atomic_cas_weak(&abandoned, &ts, next)); + } while (segment != NULL && !mi_atomic_cas_weak_acq_rel(&abandoned, &ts, next)); mi_atomic_decrement(&abandoned_readers); // release reader lock if (segment != NULL) { mi_atomic_write_ptr(mi_segment_t, &segment->abandoned_next, NULL); |