]> granicus.if.org Git - gc/commit
Fix mark stack excessive growth during parallel mark
authorAndrew Horton <andrew.j.horton@gmail.com>
Sat, 21 Dec 2013 13:06:36 +0000 (13:06 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 23 Dec 2013 13:20:51 +0000 (17:20 +0400)
commit60cbd25851cf8343f504ffb56fd847483bd20322
tree42b1770570280a0376058c22af2f22a04bb2e808
parentf9224baa657b10f176889c7305bf40fc1ff96d46
Fix mark stack excessive growth during parallel mark
(The growth observed in applications that implement things like weak
hash tables and iterate over the members marking entries using the
supplied GC_MARK_AND_PUSH macro.)

When overflow is signaled, only set GC_mark_stack_too_small if we
are using the global mark stack.  In parallel mode, local mark stack
is used, so the global mark stack is grown by GC_return_mark_stack
mainly.

* mark.c (GC_signal_mark_stack_overflow): Do not set
GC_mark_stack_too_small if GC_parallel.
mark.c