Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: mojo/edk/system/message_pipe_test_utils.cc

Issue 779503003: Extract Awakable from Waiter (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Review Update Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/edk/system/message_pipe_test_utils.h" 5 #include "mojo/edk/system/message_pipe_test_utils.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/threading/platform_thread.h" // For |Sleep()|. 8 #include "base/threading/platform_thread.h" // For |Sleep()|.
9 #include "mojo/edk/system/channel.h" 9 #include "mojo/edk/system/channel.h"
10 #include "mojo/edk/system/channel_endpoint.h" 10 #include "mojo/edk/system/channel_endpoint.h"
11 #include "mojo/edk/system/message_pipe.h" 11 #include "mojo/edk/system/message_pipe.h"
12 #include "mojo/edk/system/waiter.h" 12 #include "mojo/edk/system/waiter.h"
13 13
14 namespace mojo { 14 namespace mojo {
15 namespace system { 15 namespace system {
16 namespace test { 16 namespace test {
17 17
18 MojoResult WaitIfNecessary(scoped_refptr<MessagePipe> mp, 18 MojoResult WaitIfNecessary(scoped_refptr<MessagePipe> mp,
19 MojoHandleSignals signals, 19 MojoHandleSignals signals,
20 HandleSignalsState* signals_state) { 20 HandleSignalsState* signals_state) {
21 Waiter waiter; 21 Waiter waiter;
22 waiter.Init(); 22 waiter.Init();
23 23
24 MojoResult add_result = mp->AddWaiter(0, &waiter, signals, 0, signals_state); 24 MojoResult add_result =
25 mp->AddAwakable(0, &waiter, signals, 0, signals_state);
25 if (add_result != MOJO_RESULT_OK) { 26 if (add_result != MOJO_RESULT_OK) {
26 return (add_result == MOJO_RESULT_ALREADY_EXISTS) ? MOJO_RESULT_OK 27 return (add_result == MOJO_RESULT_ALREADY_EXISTS) ? MOJO_RESULT_OK
27 : add_result; 28 : add_result;
28 } 29 }
29 30
30 MojoResult wait_result = waiter.Wait(MOJO_DEADLINE_INDEFINITE, nullptr); 31 MojoResult wait_result = waiter.Wait(MOJO_DEADLINE_INDEFINITE, nullptr);
31 mp->RemoveWaiter(0, &waiter, signals_state); 32 mp->RemoveAwakable(0, &waiter, signals_state);
32 return wait_result; 33 return wait_result;
33 } 34 }
34 35
35 ChannelThread::ChannelThread(embedder::PlatformSupport* platform_support) 36 ChannelThread::ChannelThread(embedder::PlatformSupport* platform_support)
36 : platform_support_(platform_support), 37 : platform_support_(platform_support),
37 test_io_thread_(base::TestIOThread::kManualStart) { 38 test_io_thread_(base::TestIOThread::kManualStart) {
38 } 39 }
39 40
40 ChannelThread::~ChannelThread() { 41 ChannelThread::~ChannelThread() {
41 Stop(); 42 Stop();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 } 100 }
100 101
101 void MultiprocessMessagePipeTestBase::Init(scoped_refptr<ChannelEndpoint> ep) { 102 void MultiprocessMessagePipeTestBase::Init(scoped_refptr<ChannelEndpoint> ep) {
102 channel_thread_.Start(helper_.server_platform_handle.Pass(), ep); 103 channel_thread_.Start(helper_.server_platform_handle.Pass(), ep);
103 } 104 }
104 #endif 105 #endif
105 106
106 } // namespace test 107 } // namespace test
107 } // namespace system 108 } // namespace system
108 } // namespace mojo 109 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698