]> 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>
Fri, 2 May 2014 20:10:40 +0000 (00:10 +0400)
commit811b3eb80ab508571f7063446449091b8d6432de
tree14bd024364eddab3a7a5b5bcc1c0b34efe98380c
parent0e6a192ea7709fabdafb59dbb13793e9a038a264
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