Index: chrome/common/net/thread_blocker.cc |
=================================================================== |
--- chrome/common/net/thread_blocker.cc (revision 50775) |
+++ chrome/common/net/thread_blocker.cc (working copy) |
@@ -1,47 +0,0 @@ |
-// Copyright (c) 2010 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 "chrome/common/net/thread_blocker.h" |
- |
-#include "base/logging.h" |
-#include "base/message_loop.h" |
-#include "base/task.h" |
-#include "base/thread.h" |
-#include "base/waitable_event.h" |
- |
-// Since a ThreadBlocker is outlived by its target thread, we don't |
-// have to ref-count it. |
-DISABLE_RUNNABLE_METHOD_REFCOUNT(chrome_common_net::ThreadBlocker); |
- |
-namespace chrome_common_net { |
- |
-ThreadBlocker::ThreadBlocker(base::Thread* target_thread) |
- : target_message_loop_(target_thread->message_loop()), |
- is_blocked_(false, false), is_finished_blocking_(false, false), |
- is_unblocked_(false, false) { |
- DCHECK(target_message_loop_); |
-} |
- |
-void ThreadBlocker::Block() { |
- DCHECK_NE(MessageLoop::current(), target_message_loop_); |
- target_message_loop_->PostTask( |
- FROM_HERE, |
- NewRunnableMethod(this, &ThreadBlocker::BlockOnTargetThread)); |
- while (!is_blocked_.Wait()) {} |
-} |
- |
-void ThreadBlocker::Unblock() { |
- DCHECK_NE(MessageLoop::current(), target_message_loop_); |
- is_finished_blocking_.Signal(); |
- while (!is_unblocked_.Wait()) {} |
-} |
- |
-void ThreadBlocker::BlockOnTargetThread() { |
- DCHECK_EQ(MessageLoop::current(), target_message_loop_); |
- is_blocked_.Signal(); |
- while (!is_finished_blocking_.Wait()) {} |
- is_unblocked_.Signal(); |
-} |
- |
-} // namespace chrome_common_net |