]> granicus.if.org Git - gc/commit
Fix deadlock in GC_suspend_thread when thread is rebuilding free list
authorIvan Maidanski <ivmai@mail.ru>
Fri, 21 Jul 2017 17:27:12 +0000 (20:27 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 7 Aug 2017 21:50:10 +0000 (00:50 +0300)
commitde676ee5825a426dc4b85536fd747db540e705fb
treeee23b540b3e9b3c34828bcd3b3596fb68ce7abb3
parent909db03bb28fd69e6a2c405cfb8afb5a6e59db5c
Fix deadlock in GC_suspend_thread when thread is rebuilding free list
(fix commits 62097c359e2bcf)

* pthread_stop_world.c [GC_ENABLE_SUSPEND_THREAD] (GC_suspend_thread):
Move DISABLE_CANCEL() upper to cover also GC_wait_for_reclaim() and
RAISE_SIGNAL() calls.
* pthread_stop_world.c [GC_ENABLE_SUSPEND_THREAD && PARALLEL_MARK]
(GC_suspend_thread): If GC_parallel then call GC_wait_for_reclaim()
holding the allocation lock before RAISE_SIGNAL() call; add comment.
pthread_stop_world.c