summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_sync_channel_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipc_sync_channel_unittest.cc')
-rw-r--r--ipc/ipc_sync_channel_unittest.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/ipc/ipc_sync_channel_unittest.cc b/ipc/ipc_sync_channel_unittest.cc
index 3219000..007f354 100644
--- a/ipc/ipc_sync_channel_unittest.cc
+++ b/ipc/ipc_sync_channel_unittest.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "base/basictypes.h"
+#include "base/dynamic_annotations.h"
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/platform_thread.h"
@@ -39,7 +40,13 @@ class Worker : public Channel::Listener, public Message::Sender {
ipc_thread_((thread_name + "_ipc").c_str()),
listener_thread_((thread_name + "_listener").c_str()),
overrided_thread_(NULL),
- shutdown_event_(true, false) { }
+ shutdown_event_(true, false) {
+ // The data race on vfptr is real but is very hard
+ // to suppress using standard Valgrind mechanism (suppressions).
+ // We have to use ANNOTATE_BENIGN_RACE to hide the reports and
+ // make ThreadSanitizer bots green.
+ ANNOTATE_BENIGN_RACE(this, "Race on vfptr, http://crbug.com/25841");
+ }
// Will create a named channel and use this name for the threads' name.
Worker(const std::string& channel_name, Channel::Mode mode)
@@ -50,7 +57,13 @@ class Worker : public Channel::Listener, public Message::Sender {
ipc_thread_((channel_name + "_ipc").c_str()),
listener_thread_((channel_name + "_listener").c_str()),
overrided_thread_(NULL),
- shutdown_event_(true, false) { }
+ shutdown_event_(true, false) {
+ // The data race on vfptr is real but is very hard
+ // to suppress using standard Valgrind mechanism (suppressions).
+ // We have to use ANNOTATE_BENIGN_RACE to hide the reports and
+ // make ThreadSanitizer bots green.
+ ANNOTATE_BENIGN_RACE(this, "Race on vfptr, http://crbug.com/25841");
+ }
// The IPC thread needs to outlive SyncChannel, so force the correct order of
// destruction.