aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-06-11 11:01:33 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-06-11 11:05:16 -0700
commit530dc71d0487cacccbe270490d460bc401040dc9 (patch)
tree3b5f097be4fad07ca84e196ae4a541b39b2ec881 /tensorflow
parent20a8e604e33bacb85e39c8ad0b1f8b101b230ef7 (diff)
Fix tsan detected error in core/util/exec_on_stall_test.cc
Enforce mutex around access to test variable. PiperOrigin-RevId: 200078751
Diffstat (limited to 'tensorflow')
-rw-r--r--tensorflow/core/util/exec_on_stall_test.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/tensorflow/core/util/exec_on_stall_test.cc b/tensorflow/core/util/exec_on_stall_test.cc
index df8118d611..42e66a7e84 100644
--- a/tensorflow/core/util/exec_on_stall_test.cc
+++ b/tensorflow/core/util/exec_on_stall_test.cc
@@ -16,6 +16,7 @@ limitations under the License.
#include "tensorflow/core/util/exec_on_stall.h"
#include "tensorflow/core/platform/macros.h"
+#include "tensorflow/core/platform/mutex.h"
#include "tensorflow/core/platform/test.h"
namespace tensorflow {
@@ -32,14 +33,24 @@ Chunk* NewChunk(int stall_seconds, std::function<void()> f) {
}
TEST(ExecuteOnStallTest, BothWays) {
- bool a_triggered = false;
- bool b_triggered = false;
- Chunk* a = NewChunk(1, [&a_triggered]() { a_triggered = true; });
- Chunk* b = NewChunk(1, [&b_triggered]() { b_triggered = true; });
+ mutex mu;
+ bool a_triggered(false);
+ bool b_triggered(false);
+ Chunk* a = NewChunk(1, [&mu, &a_triggered]() {
+ mutex_lock l(mu);
+ a_triggered = true;
+ });
+ Chunk* b = NewChunk(1, [&mu, &b_triggered]() {
+ mutex_lock l(mu);
+ b_triggered = true;
+ });
delete a;
Env::Default()->SleepForMicroseconds(2000000);
- EXPECT_FALSE(a_triggered);
- EXPECT_TRUE(b_triggered);
+ {
+ mutex_lock l(mu);
+ EXPECT_FALSE(a_triggered);
+ EXPECT_TRUE(b_triggered);
+ }
delete b;
}