]> granicus.if.org Git - gc/commit
Prevent a deadlock in suspend_thread and after process forking
authorIvan Maidanski <ivmai@mail.ru>
Wed, 26 Sep 2018 22:38:02 +0000 (01:38 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 26 Sep 2018 22:38:02 +0000 (01:38 +0300)
commitd6db3f005ecfff2a54b0fbd228933ae5eb12be50
tree74155657432c5b5941a7a9f411a32b40ee05e02f
parentcdc201f402616f89d478d868b44c8ff1b7462e55
Prevent a deadlock in suspend_thread and after process forking
(fix of commit 0c0e4cd)

Issue #235 (bdwgc).

* pthread_stop_world.c [GC_ENABLE_SUSPEND_THREAD] (GC_suspend_thread):
Remove unneeded comment for AO_store_release() call; invoke
GC_acquire_dirty_lock() and GC_release_dirty_lock() only if
GC_manual_vdb; add comment for GC_acquire_dirty_lock() call.
* pthread_stop_world.c [NACL] (GC_suspend_all): If GC_manual_vdb then
call GC_acquire_dirty_lock() and GC_release_dirty_lock() around the
code which ensures parking of threads.
* pthread_support.c [CAN_HANDLE_FORK] (fork_prepare_proc): Call
GC_acquire_dirty_lock().
* pthread_support.c [CAN_HANDLE_FORK] (fork_parent_proc,
fork_child_proc): Call GC_release_dirty_lock().
pthread_stop_world.c
pthread_support.c