diff options
author | mjg <mjg@FreeBSD.org> | 2014-10-30 05:10:33 +0000 |
---|---|---|
committer | mjg <mjg@FreeBSD.org> | 2014-10-30 05:10:33 +0000 |
commit | 5bb6a8bca1bb93742c27552b40fa4d271db0beb7 (patch) | |
tree | 8c1ec6be0534591701f9be349041b965ee284e86 /lib/libc/stdlib/random.c | |
parent | ecd6f69066140dbe726cff353b7bac5f6741dd30 (diff) | |
download | FreeBSD-src-5bb6a8bca1bb93742c27552b40fa4d271db0beb7.zip FreeBSD-src-5bb6a8bca1bb93742c27552b40fa4d271db0beb7.tar.gz |
filedesc: get rid of atomic_load_acq_int from fget_unlocked
A read barrier was necessary because fd table pointer and table size were
updated separately, opening a window where fget_unlocked could read new size
and old pointer.
This patch puts both these fields into one dedicated structure, pointer to which
is later atomically updated. As such, fget_unlocked only needs data a dependency
barrier which is a noop on all supported architectures.
Reviewed by: kib (previous version)
MFC after: 2 weeks
Diffstat (limited to 'lib/libc/stdlib/random.c')
0 files changed, 0 insertions, 0 deletions