Fix tsan detected error in core/util/exec_on_stall_test.cc

Enforce mutex around access to test variable.

PiperOrigin-RevId: 200078751
This commit is contained in:
A. Unique TensorFlower 2018-06-11 11:01:33 -07:00 committed by TensorFlower Gardener
parent 20a8e604e3
commit 530dc71d04

View File

@ -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;
}