Index: third_party/mojo/src/mojo/edk/system/awakable_list.cc |
diff --git a/third_party/mojo/src/mojo/edk/system/awakable_list.cc b/third_party/mojo/src/mojo/edk/system/awakable_list.cc |
deleted file mode 100644 |
index f20e88a6e641e5e318eb3d142e9e788d21032c86..0000000000000000000000000000000000000000 |
--- a/third_party/mojo/src/mojo/edk/system/awakable_list.cc |
+++ /dev/null |
@@ -1,74 +0,0 @@ |
-// Copyright 2013 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 "third_party/mojo/src/mojo/edk/system/awakable_list.h" |
- |
-#include <algorithm> |
- |
-#include "base/logging.h" |
-#include "third_party/mojo/src/mojo/edk/system/awakable.h" |
-#include "third_party/mojo/src/mojo/edk/system/handle_signals_state.h" |
- |
-namespace mojo { |
-namespace system { |
- |
-AwakableList::AwakableList() { |
-} |
- |
-AwakableList::~AwakableList() { |
- DCHECK(awakables_.empty()); |
-} |
- |
-void AwakableList::AwakeForStateChange(const HandleSignalsState& state) { |
- // Instead of deleting elements in-place, swap them with the last element and |
- // erase the elements from the end. |
- auto last = awakables_.end(); |
- for (AwakeInfoList::iterator it = awakables_.begin(); it != last;) { |
- bool keep = true; |
- if (state.satisfies(it->signals)) |
- keep = it->awakable->Awake(MOJO_RESULT_OK, it->context); |
- else if (!state.can_satisfy(it->signals)) |
- keep = it->awakable->Awake(MOJO_RESULT_FAILED_PRECONDITION, it->context); |
- |
- if (!keep) { |
- --last; |
- std::swap(*it, *last); |
- } else { |
- ++it; |
- } |
- } |
- awakables_.erase(last, awakables_.end()); |
-} |
- |
-void AwakableList::CancelAll() { |
- for (AwakeInfoList::iterator it = awakables_.begin(); it != awakables_.end(); |
- ++it) { |
- it->awakable->Awake(MOJO_RESULT_CANCELLED, it->context); |
- } |
- awakables_.clear(); |
-} |
- |
-void AwakableList::Add(Awakable* awakable, |
- MojoHandleSignals signals, |
- uintptr_t context) { |
- awakables_.push_back(AwakeInfo(awakable, signals, context)); |
-} |
- |
-void AwakableList::Remove(Awakable* awakable) { |
- // We allow a thread to wait on the same handle multiple times simultaneously, |
- // so we need to scan the entire list and remove all occurrences of |waiter|. |
- auto last = awakables_.end(); |
- for (AwakeInfoList::iterator it = awakables_.begin(); it != last;) { |
- if (it->awakable == awakable) { |
- --last; |
- std::swap(*it, *last); |
- } else { |
- ++it; |
- } |
- } |
- awakables_.erase(last, awakables_.end()); |
-} |
- |
-} // namespace system |
-} // namespace mojo |