freebsd-dev/lib/libthr
Konstantin Belousov 3e7e67c08d In the pthread_once(), if the initializer has already run, then the
calling thread is supposed to see accesses issued by the initializer.
This means that the read of the once_control->state variable should
have an acquire semantic.  Use atomic_thread_fence_acq() when the
value read is ONCE_DONE, instead of straightforward atomic_load_acq(),
to only put a barrier when needed (*).

On the other hand, the updates of the once_control->state with the
intermediate progress state do not need to synchronize with other
state accesses, remove _acq suffix.

Reviewed by:	alc (previous version)
Suggested by:	alc (*)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-09-08 08:41:07 +00:00
..
arch Disable SSE in libthr 2015-08-05 12:53:55 +00:00
support
sys Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
tests Disable the tests that use makecontext on arm64, it still needs to be 2015-04-27 13:56:20 +00:00
thread In the pthread_once(), if the initializer has already run, then the 2015-09-08 08:41:07 +00:00
libthr.3 Update libthr(3) man page to reflect the work done to support dlopen. 2015-02-12 17:16:54 +00:00
Makefile Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
Makefile.depend new depends 2015-06-16 23:37:19 +00:00
plockstat.d
pthread.map Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00