diff options
author | Peter Hawkins <phawkins@google.com> | 2017-02-13 15:34:58 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-02-13 17:24:58 -0800 |
commit | bc225bfaa534acc25047fe844f19edc333b7a76a (patch) | |
tree | fa76941d893ad2e31d0961194c68893a4dc29c5a /tensorflow/cc/training | |
parent | d065a5d984794a0e59bc1787010ef4b911d4ef89 (diff) |
Fix code that ignores tensorflow::Status.
Add a new tensorflow::Status::IgnoreError() method to mark call sites where a Status has been intentionally ignored.
Change: 147402405
Diffstat (limited to 'tensorflow/cc/training')
-rw-r--r-- | tensorflow/cc/training/coordinator.cc | 4 | ||||
-rw-r--r-- | tensorflow/cc/training/coordinator_test.cc | 30 | ||||
-rw-r--r-- | tensorflow/cc/training/queue_runner.cc | 4 | ||||
-rw-r--r-- | tensorflow/cc/training/queue_runner_test.cc | 8 |
4 files changed, 23 insertions, 23 deletions
diff --git a/tensorflow/cc/training/coordinator.cc b/tensorflow/cc/training/coordinator.cc index 53a566db95..0ec3c5edd6 100644 --- a/tensorflow/cc/training/coordinator.cc +++ b/tensorflow/cc/training/coordinator.cc @@ -31,8 +31,8 @@ Coordinator::Coordinator(const std::vector<error::Code>& clean_stop_errors) } Coordinator::~Coordinator() { - RequestStop(); - Join(); + RequestStop().IgnoreError(); + Join().IgnoreError(); } Status Coordinator::RegisterRunner(std::unique_ptr<RunnerInterface> runner) { diff --git a/tensorflow/cc/training/coordinator_test.cc b/tensorflow/cc/training/coordinator_test.cc index 5e4a696690..79f2a955d5 100644 --- a/tensorflow/cc/training/coordinator_test.cc +++ b/tensorflow/cc/training/coordinator_test.cc @@ -46,7 +46,7 @@ TEST(CoordinatorTest, TestStopAndWaitOnStop) { Env::Default()->SleepForMicroseconds(10000000); EXPECT_EQ(stopped, false); - coord.RequestStop(); + TF_EXPECT_OK(coord.RequestStop()); done.WaitForNotification(); EXPECT_EQ(stopped, true); EXPECT_EQ(coord.ShouldStop(), true); @@ -98,7 +98,7 @@ class MockQueueRunner : public RunnerInterface { (*counter)++; Env::Default()->SleepForMicroseconds(100000); } - coord_->RequestStop(); + coord_->RequestStop().IgnoreError(); } void SetStatusThread(const Status& status, BlockingCounter* counter) { Env::Default()->SleepForMicroseconds(100000); @@ -118,16 +118,16 @@ TEST(CoordinatorTest, TestRealStop) { std::unique_ptr<MockQueueRunner> qr1(new MockQueueRunner(&coord)); qr1->StartCounting(&counter, 100); - coord.RegisterRunner(std::move(qr1)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr1))); std::unique_ptr<MockQueueRunner> qr2(new MockQueueRunner(&coord)); qr2->StartCounting(&counter, 100); - coord.RegisterRunner(std::move(qr2)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr2))); // Wait until the counting has started while (counter.load() == 0) ; - coord.RequestStop(); + TF_EXPECT_OK(coord.RequestStop()); int temp_counter = counter.load(); Env::Default()->SleepForMicroseconds(10000000); @@ -142,7 +142,7 @@ TEST(CoordinatorTest, TestRequestStop) { for (int i = 0; i < 10; i++) { qr.reset(new MockQueueRunner(&coord)); qr->StartCounting(&counter, 10); - coord.RegisterRunner(std::move(qr)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr))); } coord.WaitForStop(); @@ -156,12 +156,12 @@ TEST(CoordinatorTest, TestJoin) { int join_counter = 0; std::unique_ptr<MockQueueRunner> qr1( new MockQueueRunner(&coord, &join_counter)); - coord.RegisterRunner(std::move(qr1)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr1))); std::unique_ptr<MockQueueRunner> qr2( new MockQueueRunner(&coord, &join_counter)); - coord.RegisterRunner(std::move(qr2)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr2))); - coord.RequestStop(); + TF_EXPECT_OK(coord.RequestStop()); TF_EXPECT_OK(coord.Join()); EXPECT_EQ(join_counter, 2); } @@ -172,25 +172,25 @@ TEST(CoordinatorTest, StatusReporting) { std::unique_ptr<MockQueueRunner> qr1(new MockQueueRunner(&coord)); qr1->StartSettingStatus(Status(Code::CANCELLED, ""), &counter); - coord.RegisterRunner(std::move(qr1)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr1))); std::unique_ptr<MockQueueRunner> qr2(new MockQueueRunner(&coord)); qr2->StartSettingStatus(Status(Code::INVALID_ARGUMENT, ""), &counter); - coord.RegisterRunner(std::move(qr2)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr2))); std::unique_ptr<MockQueueRunner> qr3(new MockQueueRunner(&coord)); qr3->StartSettingStatus(Status(Code::OUT_OF_RANGE, ""), &counter); - coord.RegisterRunner(std::move(qr3)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr3))); counter.Wait(); - coord.RequestStop(); + TF_EXPECT_OK(coord.RequestStop()); EXPECT_EQ(coord.Join().code(), Code::INVALID_ARGUMENT); } TEST(CoordinatorTest, JoinWithoutStop) { Coordinator coord; std::unique_ptr<MockQueueRunner> qr(new MockQueueRunner(&coord)); - coord.RegisterRunner(std::move(qr)); + TF_ASSERT_OK(coord.RegisterRunner(std::move(qr))); EXPECT_EQ(coord.Join().code(), Code::FAILED_PRECONDITION); } @@ -198,7 +198,7 @@ TEST(CoordinatorTest, JoinWithoutStop) { TEST(CoordinatorTest, AllRunnersStopped) { Coordinator coord; MockQueueRunner* qr = new MockQueueRunner(&coord); - coord.RegisterRunner(std::unique_ptr<RunnerInterface>(qr)); + TF_ASSERT_OK(coord.RegisterRunner(std::unique_ptr<RunnerInterface>(qr))); EXPECT_FALSE(coord.AllRunnersStopped()); qr->Stop(); diff --git a/tensorflow/cc/training/queue_runner.cc b/tensorflow/cc/training/queue_runner.cc index cd6cc67327..1f6794cce2 100644 --- a/tensorflow/cc/training/queue_runner.cc +++ b/tensorflow/cc/training/queue_runner.cc @@ -77,7 +77,7 @@ Status QueueRunner::Init(const QueueRunnerDef& queue_runner_def) { QueueRunner::~QueueRunner() { // Cannot run Stop() here because the session might already be closed or // destroyed. - Join(); + Join().IgnoreError(); } Status QueueRunner::Start(Session* sess) { return Start(sess, 0); } @@ -175,7 +175,7 @@ void QueueRunner::Run(Session* sess, const string& enqueue_op) { } else if (!status.ok()) { UpdateStatus(status); if (coord_) { - coord_->RequestStop(); + coord_->RequestStop().IgnoreError(); } } } diff --git a/tensorflow/cc/training/queue_runner_test.cc b/tensorflow/cc/training/queue_runner_test.cc index 1661c5c91b..27c302ab28 100644 --- a/tensorflow/cc/training/queue_runner_test.cc +++ b/tensorflow/cc/training/queue_runner_test.cc @@ -293,7 +293,7 @@ TEST(QueueRunnerTest, StartTimeout) { // This will timeout since queue0 is not fed and queue1 is fetching data from // queue0. EXPECT_EQ(qr->Start(session.get(), 1).code(), Code::DEADLINE_EXCEEDED); - session->Close(); + TF_EXPECT_OK(session->Close()); } TEST(QueueRunnerTest, TestCoordinatorStop) { @@ -317,8 +317,8 @@ TEST(QueueRunnerTest, TestCoordinatorStop) { TF_EXPECT_OK(QueueRunner::New(queue_runner1, &coord, &qr1)); TF_CHECK_OK(qr1->Start(session.get())); - coord.RegisterRunner(std::move(qr0)); - coord.RegisterRunner(std::move(qr1)); + TF_EXPECT_OK(coord.RegisterRunner(std::move(qr0))); + TF_EXPECT_OK(coord.RegisterRunner(std::move(qr1))); std::vector<Tensor> dq; TF_EXPECT_OK(session->Run({}, {kDequeueOp1}, {}, &dq)); @@ -340,7 +340,7 @@ TEST(QueueRunnerTest, CallbackCalledOnError) { bool error_caught = false; qr->AddErrorCallback([&error_caught](const Status&) { error_caught = true; }); TF_EXPECT_OK(qr->Start(session.get())); - qr->Join(); + EXPECT_FALSE(qr->Join().ok()); EXPECT_TRUE(error_caught); } |