summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--remoting/jingle_glue/jingle_thread.cc3
-rw-r--r--tools/valgrind/tsan/ignores.txt6
-rw-r--r--tools/valgrind/tsan/suppressions_win32.txt8
3 files changed, 3 insertions, 14 deletions
diff --git a/remoting/jingle_glue/jingle_thread.cc b/remoting/jingle_glue/jingle_thread.cc
index 0037066..f13477e 100644
--- a/remoting/jingle_glue/jingle_thread.cc
+++ b/remoting/jingle_glue/jingle_thread.cc
@@ -92,6 +92,9 @@ void JingleThread::Stop() {
// queue before exiting. Thread::Stop() would not do that.
Post(this, kStopMessageId);
stopped_event_.Wait();
+
+ // This will wait until the thread is actually finished.
+ Thread::Stop();
}
MessageLoop* JingleThread::message_loop() {
diff --git a/tools/valgrind/tsan/ignores.txt b/tools/valgrind/tsan/ignores.txt
index e3f6476..1517faf 100644
--- a/tools/valgrind/tsan/ignores.txt
+++ b/tools/valgrind/tsan/ignores.txt
@@ -97,9 +97,3 @@ fun_r:threadLockingTest
# There is a benign race which is hard to suppress properly,
# see http://crbug.com/44580
fun_r:*ChromeThread*GetCurrentThreadIdentifier*
-
-# Ignore accesses in talk_base::CriticalSection::CurrentThreadIsOwner()
-# There is a benign race but we don't have dynamic_annotations in libjingle
-# so we ignore the function instead of annotating it (for now).
-# See http://crbug.com/53766
-fun:*talk_base*CriticalSection*CurrentThreadIsOwner*
diff --git a/tools/valgrind/tsan/suppressions_win32.txt b/tools/valgrind/tsan/suppressions_win32.txt
index 55eea68..606f8a3 100644
--- a/tools/valgrind/tsan/suppressions_win32.txt
+++ b/tools/valgrind/tsan/suppressions_win32.txt
@@ -15,14 +15,6 @@
fun:*InitializeClock*
}
-{
- bug_53837
- ThreadSanitizer:Race
- fun:*talk_base*MessageQueueManager*Clear*
- fun:*talk_base*~MessageHandler*
- fun:*remoting*JingleThread*Run*
-}
-
############################
# Reports on the guts of Windows
{