nscd uses lockfree lists and we need to ensure the correct release
semantics is used when adding to the list.
2009-07-16 Ulrich Drepper <drepper@redhat.com>
+
+ * nscd/cache.c (cache_add): Use atomic_compare_and_exchange_bool_rel
+ instead of atomic_compare_and_exchange_bool_acq to ensure pointer
+ is written before the list head update.
+ Patch by Andreas Schwab <aschwab@redhat.com>.
+
Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c [ATOMIC_FASTBINS] (_int_free): Make check for
/* Put the new entry in the first position. */
do
newp->next = table->head->array[hash];
- while (atomic_compare_and_exchange_bool_acq (&table->head->array[hash],
+ while (atomic_compare_and_exchange_bool_rel (&table->head->array[hash],
(ref_t) ((char *) newp
- table->data),
(ref_t) newp->next));