]> granicus.if.org Git - gc/commitdiff
Eliminate TSan warning about data race in make_descriptor
authorIvan Maidanski <ivmai@mail.ru>
Tue, 21 Nov 2017 08:45:30 +0000 (11:45 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 21 Nov 2017 08:45:30 +0000 (11:45 +0300)
* typd_mlc.c [THREADS) && AO_HAVE_load_acquire && AO_HAVE_store]
(GC_make_descriptor): Use AO_store for setting
GC_explicit_typing_initialized (to true).

typd_mlc.c

index f62bc5d3cf1ccb1e624b72be6e97f9748ff0e5d8..da2ca27480fe5bacfcb274613710dbea024e821a 100644 (file)
@@ -542,7 +542,12 @@ GC_API GC_descr GC_CALL GC_make_descriptor(const GC_word * bm, size_t len)
 #     endif
       {
         GC_init_explicit_typing();
-        GC_explicit_typing_initialized = TRUE;
+#       if defined(THREADS) && defined(AO_HAVE_load_acquire) \
+           && defined(AO_HAVE_store)
+          AO_store(&GC_explicit_typing_initialized, (AO_t)TRUE);
+#       else
+          GC_explicit_typing_initialized = TRUE;
+#       endif
       }
       UNLOCK();
     }