diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2022-04-01 00:40:12 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2022-04-01 00:41:21 +0300 |
commit | dbcff3bb14748e6798700f094ccb2771b7160160 (patch) | |
tree | 28c4673f75e3fcb5e34f634dc4a191fdf57f65ba /malloc.c | |
parent | 0eb8d2f95c7a683338b9e3c2b55c84aa5edb4bf7 (diff) | |
download | bdwgc-dbcff3bb14748e6798700f094ccb2771b7160160.tar.gz |
Eliminate data race reported by TSan in GC_have_errors
* alloc.c (GC_gcollect): Replace read of GC_have_errors with
get_have_errors() call.
* malloc.c (GC_generic_malloc): Likewise.
* mallocx.c (GC_generic_malloc_ignore_off_page,
GC_generic_malloc_many): Likewise.
* reclaim.c (GC_print_all_errors): Likewise.
* dbg_mlc.c [!SHORT_DBG_HDRS] (GC_debug_free, GC_add_smashed): Replace
GC_have_errors=TRUE with GC_SET_HAVE_ERRORS().
* reclaim.c (GC_add_leaked): Likewise.
* include/private/gc_priv.h [AO_HAVE_store] (GC_have_errors): Change
type from GC_bool to volatile AO_t; refine comment.
* reclaim.c [AO_HAVE_store] (GC_have_errors): Likewise.
* include/private/gc_priv.h (GC_SET_HAVE_ERRORS, get_have_errors):
Define macro.
Diffstat (limited to 'malloc.c')
-rw-r--r-- | malloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -247,7 +247,7 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc(size_t lb, int k) DCL_LOCK_STATE; GC_ASSERT(k < MAXOBJKINDS); - if (EXPECT(GC_have_errors, FALSE)) + if (EXPECT(get_have_errors(), FALSE)) GC_print_all_errors(); GC_INVOKE_FINALIZERS(); GC_DBG_COLLECT_AT_MALLOC(lb); |