Index: net/dns/serial_worker.cc |
diff --git a/net/dns/serial_worker.cc b/net/dns/serial_worker.cc |
deleted file mode 100644 |
index 4da7df98ba2d878b4f694a5fca60c0a46d5d0313..0000000000000000000000000000000000000000 |
--- a/net/dns/serial_worker.cc |
+++ /dev/null |
@@ -1,100 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/dns/serial_worker.h" |
- |
-#include "base/bind.h" |
-#include "base/location.h" |
-#include "base/message_loop/message_loop_proxy.h" |
-#include "base/threading/worker_pool.h" |
- |
-namespace net { |
- |
-SerialWorker::SerialWorker() |
- : message_loop_(base::MessageLoopProxy::current()), |
- state_(IDLE) {} |
- |
-SerialWorker::~SerialWorker() {} |
- |
-void SerialWorker::WorkNow() { |
- DCHECK(message_loop_->BelongsToCurrentThread()); |
- switch (state_) { |
- case IDLE: |
- if (!base::WorkerPool::PostTask(FROM_HERE, base::Bind( |
- &SerialWorker::DoWorkJob, this), false)) { |
-#if defined(OS_POSIX) |
- // See worker_pool_posix.cc. |
- NOTREACHED() << "WorkerPool::PostTask is not expected to fail on posix"; |
-#else |
- LOG(WARNING) << "Failed to WorkerPool::PostTask, will retry later"; |
- const int kWorkerPoolRetryDelayMs = 100; |
- message_loop_->PostDelayedTask( |
- FROM_HERE, |
- base::Bind(&SerialWorker::RetryWork, this), |
- base::TimeDelta::FromMilliseconds(kWorkerPoolRetryDelayMs)); |
- state_ = WAITING; |
- return; |
-#endif |
- } |
- state_ = WORKING; |
- return; |
- case WORKING: |
- // Remember to re-read after |DoRead| finishes. |
- state_ = PENDING; |
- return; |
- case CANCELLED: |
- case PENDING: |
- case WAITING: |
- return; |
- default: |
- NOTREACHED() << "Unexpected state " << state_; |
- } |
-} |
- |
-void SerialWorker::Cancel() { |
- DCHECK(message_loop_->BelongsToCurrentThread()); |
- state_ = CANCELLED; |
-} |
- |
-void SerialWorker::DoWorkJob() { |
- this->DoWork(); |
- // If this fails, the loop is gone, so there is no point retrying. |
- message_loop_->PostTask(FROM_HERE, base::Bind( |
- &SerialWorker::OnWorkJobFinished, this)); |
-} |
- |
-void SerialWorker::OnWorkJobFinished() { |
- DCHECK(message_loop_->BelongsToCurrentThread()); |
- switch (state_) { |
- case CANCELLED: |
- return; |
- case WORKING: |
- state_ = IDLE; |
- this->OnWorkFinished(); |
- return; |
- case PENDING: |
- state_ = IDLE; |
- WorkNow(); |
- return; |
- default: |
- NOTREACHED() << "Unexpected state " << state_; |
- } |
-} |
- |
-void SerialWorker::RetryWork() { |
- DCHECK(message_loop_->BelongsToCurrentThread()); |
- switch (state_) { |
- case CANCELLED: |
- return; |
- case WAITING: |
- state_ = IDLE; |
- WorkNow(); |
- return; |
- default: |
- NOTREACHED() << "Unexpected state " << state_; |
- } |
-} |
- |
-} // namespace net |
- |