53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
// Copyright 2017 The Fuchsia Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include <lib/async-loop/cpp/loop.h>
|
|
|
|
#include <zircon/assert.h>
|
|
|
|
namespace async {
|
|
|
|
Loop::Loop(const async_loop_config_t* config) {
|
|
zx_status_t status = async_loop_create(config, &loop_);
|
|
ZX_ASSERT_MSG(status == ZX_OK, "status=%d", status);
|
|
}
|
|
|
|
Loop::~Loop() {
|
|
async_loop_destroy(loop_);
|
|
}
|
|
|
|
void Loop::Shutdown() {
|
|
async_loop_shutdown(loop_);
|
|
}
|
|
|
|
zx_status_t Loop::Run(zx::time deadline, bool once) {
|
|
return async_loop_run(loop_, deadline.get(), once);
|
|
}
|
|
|
|
zx_status_t Loop::RunUntilIdle() {
|
|
return async_loop_run_until_idle(loop_);
|
|
}
|
|
|
|
void Loop::Quit() {
|
|
async_loop_quit(loop_);
|
|
}
|
|
|
|
zx_status_t Loop::ResetQuit() {
|
|
return async_loop_reset_quit(loop_);
|
|
}
|
|
|
|
async_loop_state_t Loop::GetState() const {
|
|
return async_loop_get_state(loop_);
|
|
}
|
|
|
|
zx_status_t Loop::StartThread(const char* name, thrd_t* out_thread) {
|
|
return async_loop_start_thread(loop_, name, out_thread);
|
|
}
|
|
|
|
void Loop::JoinThreads() {
|
|
async_loop_join_threads(loop_);
|
|
}
|
|
|
|
} // namespace async
|