--- - branch: MAIN date: Sun Dec 1 15:28:20 UTC 2019 files: - new: '1.7' old: '1.6' path: src/sys/sys/pslist.h pathrev: src/sys/sys/pslist.h@1.7 type: modified - new: '1.2' old: '1.1' path: src/tests/include/sys/t_pslist.c pathrev: src/tests/include/sys/t_pslist.c@1.2 type: modified id: 20191201T152820Z.0eba6d2c492cc6e1613f770c6d4fe5e1442c5f8c log: | Adapt to use atomic_load/store_*. 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. module: src subject: 'CVS commit: src' unixtime: '1575214100' user: riastradh