d6cbc02da6
Changes: - membar_producer(); *p = v; => atomic_store_release(p, v); (Effectively like using membar_exit instead of membar_producer, which is what we should have been doing all along so that stores by the `reader' can't affect earlier loads by the writer, such as KASSERT(p->refcnt == 0) in the writer and atomic_inc(&p->refcnt) in the reader.) - p = *pp; if (p != NULL) membar_datadep_consumer(); => p = atomic_load_consume(pp); (Only makes a difference on DEC Alpha. As long as lists generally have at least one element, this is not likely to make a big difference, and keeps the code simpler and clearer.) No other functional change intended. While here, annotate each synchronizing load and store with its counterpart in a comment. |
||
---|---|---|
.. | ||
machine | ||
sys | ||
Makefile | ||
Makefile.inc | ||
d_bitstring_8.out | ||
d_bitstring_27.out | ||
d_bitstring_32.out | ||
d_bitstring_49.out | ||
d_bitstring_64.out | ||
d_bitstring_67.out | ||
t_bitstring.c | ||
t_errno.c | ||
t_glob.c | ||
t_inttypes.c | ||
t_limits.c | ||
t_netdb.c | ||
t_paths.c | ||
t_stdint.c |