summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authortimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 11:39:26 +0000
committertimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 11:39:26 +0000
commit9d2b422646d62b807d25ffd1bc357068986b6dfb (patch)
treebcaa3fe85610a74c789902e2eb97cdc55537ad41 /tools
parent663b7142ab80baf2485677f73f0451fb3d966b6a (diff)
downloadchromium_src-9d2b422646d62b807d25ffd1bc357068986b6dfb.zip
chromium_src-9d2b422646d62b807d25ffd1bc357068986b6dfb.tar.gz
chromium_src-9d2b422646d62b807d25ffd1bc357068986b6dfb.tar.bz2
Added a suppression for another benign race in ICU, widen one old suppression.
(see third_party/icu/source/common/umutex.c) When two concurrent threads try to call umtx_lock(mutex) for an uninitialized mutex simultaneously, *mutex is read without taking any lock. However, if *mutex is NULL, a DCLP inside umtx_init(mutex) guarantees that *mutex is initialized exactly once. Otherwise, if *mutex is already a valid pthread_mutex_t, the behavior of the program is not affected. This patch was prepared by Alexander Potapenko (cc'ed) TBR=dank Review URL: http://codereview.chromium.org/303019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29633 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r--tools/valgrind/tsan/suppressions.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/valgrind/tsan/suppressions.txt b/tools/valgrind/tsan/suppressions.txt
index 14b46ae..4557452 100644
--- a/tools/valgrind/tsan/suppressions.txt
+++ b/tools/valgrind/tsan/suppressions.txt
@@ -167,6 +167,7 @@
{
Two writes, same value (ICU gGlobalMutex, gMutexesInUse)
ThreadSanitizer:Race
+ ...
fun:umtx_init_4_2
}
@@ -176,6 +177,13 @@
fun:uprv_malloc_4_2
}
+# Reading a pointer to a mutex being initialized in a concurrent thread.
+{
+ A benign race in umtx_lock_4_2
+ ThreadSanitizer:Race
+ fun:umtx_lock_4_2
+}
+
############################
# Benign race in SQLLite
{