diff options
-rw-r--r-- | remoting/jingle_glue/jingle_thread.cc | 3 | ||||
-rw-r--r-- | tools/valgrind/tsan/ignores.txt | 6 | ||||
-rw-r--r-- | tools/valgrind/tsan/suppressions_win32.txt | 8 |
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 { |