]> granicus.if.org Git - gc/commit
Handle pthread restart signals loss if retry_signals
authorIvan Maidanski <ivmai@mail.ru>
Mon, 2 Apr 2018 22:23:01 +0000 (01:23 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 2 Apr 2018 22:44:31 +0000 (01:44 +0300)
commit3498427481eb25ca885e64433e9b4bd198aa0368
treed4722fdbd0021537d27513159ff3b02474dcf0ce
parent09c682780e88dae59df18dc19223b770ac6e0e18
Handle pthread restart signals loss if retry_signals

Issue #181 (bdwgc).

* doc/README.environment (GC_RETRY_SIGNALS, GC_NO_RETRY_SIGNALS):
Update documentation (support of restart signals loss, try signals
if compiled with ASan/MSan/TSan).
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL]
(GC_retry_signals): Set true also if ADDRESS_SANITIZER or
MEMORY_SANITIZER.
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL
&& !GC_NETBSD_THREADS_WORKAROUND] (GC_suspend_handler_inner): Call
sem_post(GC_suspend_ack_sem) at the function end if GC_retry_signals;
update comment about the RESTART signal loss.
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL
&& !GC_OPENBSD_UTHREADS] (GC_start_world): Call
resend_lost_signals(GC_restart_all) and update n_live_threads value.
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL
&& !GC_OPENBSD_UTHREADS && !GC_NETBSD_THREADS_WORKAROUND]
(GC_start_world): Call suspend_restart_barrier() if GC_retry_signals.
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL] (GC_stop_init):
Update the message logged if GC_retry_signals.
doc/README.environment
pthread_stop_world.c