summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2022-05-23 20:22:26 +0300
committerIvan Maidanski <ivmai@mail.ru>2022-06-15 22:58:01 +0300
commit6a6dfe829d8aa55bede0b793b7c270203a06f6db (patch)
treed6bc656aba59951a69775c55f8ea5e4a180e6533
parentc5fb8828c247373200c80d33771bfa3c5956b8ed (diff)
downloadbdwgc-6a6dfe829d8aa55bede0b793b7c270203a06f6db.tar.gz
Remove useless TSan W/A about read of mark_lock_holder for Windows
(fix of commit 0fbe44656) TSan itself is not supported on Windows (native and Cygwin) yet. * win32_threads.c [PARALLEL_MARK && (!GC_PTHREADS_PARAMARK || NUMERIC_THREAD_ID_UNIQUE)] (GC_acquire_mark_lock): Assertion about GC_mark_lock_holder regardless of THREAD_SANITIZER.
-rw-r--r--win32_threads.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/win32_threads.c b/win32_threads.c
index 196bc7bf..788134c5 100644
--- a/win32_threads.c
+++ b/win32_threads.c
@@ -2095,7 +2095,7 @@ GC_INNER void GC_get_next_stack(char *start, char *limit,
GC_INNER void GC_acquire_mark_lock(void)
{
-# if defined(NUMERIC_THREAD_ID_UNIQUE) && !defined(THREAD_SANITIZER)
+# ifdef NUMERIC_THREAD_ID_UNIQUE
GC_ASSERT(GC_mark_lock_holder != NUMERIC_THREAD_ID(pthread_self()));
# endif
if (pthread_mutex_lock(&mark_mutex) != 0) {
@@ -2274,9 +2274,7 @@ GC_INNER void GC_get_next_stack(char *start, char *limit,
GC_INNER void GC_acquire_mark_lock(void)
{
-# ifndef THREAD_SANITIZER
- GC_ASSERT(GC_mark_lock_holder != GetCurrentThreadId());
-# endif
+ GC_ASSERT(GC_mark_lock_holder != GetCurrentThreadId());
if (InterlockedExchange(&GC_mark_mutex_state, 1 /* locked */) != 0) {
# ifdef LOCK_STATS
(void)AO_fetch_and_add1(&GC_block_count);