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

Side by Side Diff: mojo/system/waiter_test_utils.cc

Issue 23621056: Initial in-process implementation of some Mojo primitives. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: build fix Created 7 years, 2 months 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 | Annotate | Revision Log
OLDNEW
(Empty)
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.
4
5 #include "mojo/system/waiter_test_utils.h"
6
7 namespace mojo {
8 namespace system {
9 namespace test {
10
11 SimpleWaiterThread::SimpleWaiterThread(MojoResult* result)
12 : base::SimpleThread("waiter_thread"),
13 result_(result) {
14 waiter_.Init();
15 *result_ = -5420734; // Totally invalid result.
16 }
17
18 SimpleWaiterThread::~SimpleWaiterThread() {
19 Join();
20 }
21
22 void SimpleWaiterThread::Run() {
23 *result_ = waiter_.Wait(MOJO_DEADLINE_INDEFINITE);
24 }
25
26 WaiterThread::WaiterThread(scoped_refptr<Dispatcher> dispatcher,
27 MojoWaitFlags wait_flags,
28 MojoDeadline deadline,
29 MojoResult success_result,
30 bool* did_wait_out,
31 MojoResult* result_out)
32 : base::SimpleThread("waiter_thread"),
33 dispatcher_(dispatcher),
34 wait_flags_(wait_flags),
35 deadline_(deadline),
36 success_result_(success_result),
37 did_wait_out_(did_wait_out),
38 result_out_(result_out) {
39 *did_wait_out_ = false;
40 *result_out_ = -8542346; // Totally invalid result.
41 }
42
43 WaiterThread::~WaiterThread() {
44 Join();
45 }
46
47 void WaiterThread::Run() {
48 waiter_.Init();
49
50 *result_out_ = dispatcher_->AddWaiter(&waiter_,
51 wait_flags_,
52 success_result_);
53 if (*result_out_ != MOJO_RESULT_OK)
54 return;
55
56 *did_wait_out_ = true;
57 *result_out_ = waiter_.Wait(deadline_);
58 dispatcher_->RemoveWaiter(&waiter_);
59 }
60
61 } // namespace test
62 } // namespace system
63 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698