From: Ivan Maidanski Date: Tue, 23 Oct 2018 23:08:14 +0000 (+0300) Subject: Fix lock assertion violation in get_index if GC_ALWAYS_MULTITHREADED X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9732d91fb26ff36829f38227a7b08aaf2dd73e80;p=gc Fix lock assertion violation in get_index if GC_ALWAYS_MULTITHREADED (fix of commit d5c65315b) * misc.c [GC_ASSERTIONS && GC_ALWAYS_MULTITHREADED] (GC_init): Move up LOCK() call to precede GC_expand_hp_inner() call. --- diff --git a/misc.c b/misc.c index fe4605be..ac93b090 100644 --- a/misc.c +++ b/misc.c @@ -1301,6 +1301,9 @@ GC_API void GC_CALL GC_init(void) GC_set_max_heap_size(max_heap_sz); } } +# if defined(GC_ASSERTIONS) && defined(GC_ALWAYS_MULTITHREADED) + LOCK(); /* just to set GC_lock_holder */ +# endif if (!GC_expand_hp_inner(divHBLKSZ(initial_heap_sz))) { GC_err_printf("Can't start up: not enough memory\n"); EXIT(); @@ -1328,9 +1331,6 @@ GC_API void GC_CALL GC_init(void) GC_pcr_install(); # endif GC_is_initialized = TRUE; -# if defined(GC_ASSERTIONS) && defined(GC_ALWAYS_MULTITHREADED) - LOCK(); /* just to set GC_lock_holder */ -# endif # if defined(GC_PTHREADS) || defined(GC_WIN32_THREADS) GC_thr_init(); # ifdef PARALLEL_MARK