| Index: mojo/public/system/async_waiter.h
|
| diff --git a/mojo/public/system/async_waiter.h b/mojo/public/system/async_waiter.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fc7c2075da37684eb3d6a82b2b838c25f6070b8c
|
| --- /dev/null
|
| +++ b/mojo/public/system/async_waiter.h
|
| @@ -0,0 +1,40 @@
|
| +// Copyright 2014 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.
|
| +
|
| +#ifndef MOJO_PUBLIC_SYSTEM_ASYNC_WAITER_H_
|
| +#define MOJO_PUBLIC_SYSTEM_ASYNC_WAITER_H_
|
| +
|
| +#include "mojo/public/system/core.h"
|
| +
|
| +#ifdef __cplusplus
|
| +extern "C" {
|
| +#endif
|
| +
|
| +typedef uintptr_t MojoAsyncWaitID;
|
| +
|
| +typedef void (*MojoAsyncWaitCallback)(void* closure, MojoResult result);
|
| +
|
| +struct MojoAsyncWaiter {
|
| + // Asynchronously call MojoWait on a background thread, and pass the result
|
| + // of MojoWait to the given MojoAsyncWaitCallback on the current thread.
|
| + // Returns a non-zero MojoAsyncWaitID that can be used with CancelWait to
|
| + // stop waiting. This identifier becomes invalid once the callback runs.
|
| + MojoAsyncWaitID (*AsyncWait)(MojoAsyncWaiter* waiter,
|
| + MojoHandle handle,
|
| + MojoWaitFlags flags,
|
| + MojoDeadline deadline,
|
| + MojoAsyncWaitCallback callback,
|
| + void* closure);
|
| +
|
| + // Cancel an existing call to AsyncWait with the given MojoAsyncWaitID. The
|
| + // corresponding MojoAsyncWaitCallback will not be called in this case.
|
| + void (*CancelWait)(MojoAsyncWaiter* waiter,
|
| + MojoAsyncWaitID wait_id);
|
| +};
|
| +
|
| +#ifdef __cplusplus
|
| +} // extern "C"
|
| +#endif
|
| +
|
| +#endif // MOJO_PUBLIC_SYSTEM_ASYNC_WAITER_H_
|
|
|