Do not use spin locks if AO test-and-set is emulated (pthreads)
authorIvan Maidanski <ivmai@mail.ru>
Tue, 20 Nov 2018 20:44:08 +0000 (23:44 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 20 Nov 2018 20:47:08 +0000 (23:47 +0300)
commit70283bbb4590a386ab11201feb578ed50166f030
treeb9090923f28af7a01cf5067a3608467a5f0b55d4
parent8d4ecdfc81edab312a9feef9b5985f327ec50bad
Do not use spin locks if AO test-and-set is emulated (pthreads)

* include/private/gc_locks.h [BASE_ATOMIC_OPS_EMULATED && GC_PTHREADS]
(USE_PTHREAD_LOCKS): Define.
* include/private/gc_locks.h [BASE_ATOMIC_OPS_EMULATED && GC_PTHREADS]
(USE_SPIN_LOCK): Undefine.
* pthread_support.c [(USE_SPIN_LOCK || !NO_PTHREAD_TRYLOCK)
&& AO_CLEAR] (GC_pause): Do not use AO_compiler_barrier() if
BASE_ATOMIC_OPS_EMULATED.
* pthread_support.c [AO_HAVE_char_load] (is_collecting): Do not use
AO_char_load() if BASE_ATOMIC_OPS_EMULATED.
include/private/gc_locks.h
pthread_support.c