Try backing SkPicture with SkRecord in Chromium.
[chromium-blink-merge.git] / device / serial / async_waiter.cc
blobeb533fd2cecd5dfea735780148f82dcc309f36e0
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
3 // found in the LICENSE file.
5 #include "device/serial/async_waiter.h"
7 namespace device {
9 AsyncWaiter::AsyncWaiter(mojo::Handle handle,
10 MojoHandleSignals signals,
11 const Callback& callback)
12 : waiter_(mojo::Environment::GetDefaultAsyncWaiter()),
13 id_(0),
14 callback_(callback) {
15 id_ = waiter_->AsyncWait(handle.value(),
16 signals,
17 MOJO_DEADLINE_INDEFINITE,
18 &AsyncWaiter::WaitComplete,
19 this);
22 AsyncWaiter::~AsyncWaiter() {
23 if (id_)
24 waiter_->CancelWait(id_);
27 // static
28 void AsyncWaiter::WaitComplete(void* waiter, MojoResult result) {
29 static_cast<AsyncWaiter*>(waiter)->WaitCompleteInternal(result);
32 void AsyncWaiter::WaitCompleteInternal(MojoResult result) {
33 id_ = 0;
34 callback_.Run(result);
37 } // namespace device