]> granicus.if.org Git - gc/commit
Fix data race during apply_to_each_object(reset_back_edge)
authorIvan Maidanski <ivmai@mail.ru>
Tue, 10 Apr 2018 08:07:08 +0000 (11:07 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 17 Apr 2018 20:06:13 +0000 (23:06 +0300)
commit2b8cd0b891dc74f3433378f54bab96c2d556f1b7
tree9b27b57672c4f2e3a13879c2cd779fd66eb12c22
parent3a565c143a6a66287753d2a9851890d2f820fb11
Fix data race during apply_to_each_object(reset_back_edge)
(back-port of commit d7ea0b1 from 'master')

Issue #144 (bdwgc).

* backgraph.c [MAKE_BACK_GRAPH] (GC_print_back_graph_stats): Add
assertion that the allocation lock is held; store GC_deepest_obj to
obj local variable (while holding the lock); place UNLOCK/LOCK around
GC_print_heap_obj() call; pass obj to GC_print_heap_obj().
* finalize.c [MAKE_BACK_GRAPH] (GC_notify_or_invoke_finalizers): Remove
UNLOCK/LOCK around GC_print_back_graph_stats() call.
backgraph.c
finalize.c