Fix race in GC_print_all_errors regarding GC_leaked
authorIvan Maidanski <ivmai@mail.ru>
Mon, 16 Sep 2013 04:50:49 +0000 (08:50 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 16 Sep 2013 21:46:55 +0000 (01:46 +0400)
commit87cad9093454ec6316c2a649b239ac65d280a3ec
tree8c9fd9686206525249e728d999164306207e62a0
parent4a0d2d244f47a57fa9c97777330fe8c382e353e8
Fix race in GC_print_all_errors regarding GC_leaked

* reclaim.c (GC_add_leaked): Remove FIXME.
* reclaim.c (GC_print_all_errors): Declare n_leaked, leaked[] local
variables initialized from GC_[n_]leaked while holding the allocation
lock (reset GC_n_leaked and GC_leaked[] as well); add GC_ASSERT for
n_leaked; use [n_]leaked while printing leaked objects count and
pointers.
* reclaim.c (GC_print_all_errors): Acquire lock to reset
printing_errors.
reclaim.c