| Index: ipc/ipc_sync_channel_unittest.cc
|
| ===================================================================
|
| --- ipc/ipc_sync_channel_unittest.cc (revision 30177)
|
| +++ ipc/ipc_sync_channel_unittest.cc (working copy)
|
| @@ -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 @@
|
| 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 @@
|
| 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.
|
|
|