Add an extension override bubble and warning box for proxy extensions. (2nd attempt...
[chromium-blink-merge.git] / mojo / system / simple_dispatcher.cc
blobce2baefe2dd5402a00559294ef60ba3bafb64c7d
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mojo/system/simple_dispatcher.h"
7 #include "base/logging.h"
9 namespace mojo {
10 namespace system {
12 SimpleDispatcher::SimpleDispatcher() {
15 SimpleDispatcher::~SimpleDispatcher() {
18 void SimpleDispatcher::StateChangedNoLock() {
19 lock().AssertAcquired();
20 waiter_list_.AwakeWaitersForStateChange(SatisfiedFlagsNoLock(),
21 SatisfiableFlagsNoLock());
24 void SimpleDispatcher::CancelAllWaitersNoLock() {
25 lock().AssertAcquired();
26 waiter_list_.CancelAllWaiters();
29 MojoResult SimpleDispatcher::AddWaiterImplNoLock(Waiter* waiter,
30 MojoWaitFlags flags,
31 MojoResult wake_result) {
32 lock().AssertAcquired();
34 if ((flags & SatisfiedFlagsNoLock()))
35 return MOJO_RESULT_ALREADY_EXISTS;
36 if (!(flags & SatisfiableFlagsNoLock()))
37 return MOJO_RESULT_FAILED_PRECONDITION;
39 waiter_list_.AddWaiter(waiter, flags, wake_result);
40 return MOJO_RESULT_OK;
43 void SimpleDispatcher::RemoveWaiterImplNoLock(Waiter* waiter) {
44 lock().AssertAcquired();
45 waiter_list_.RemoveWaiter(waiter);
48 } // namespace system
49 } // namespace mojo