#pragma once
#include "UVHandle.h"
#include <panda/unievent/backend/AsyncImpl.h>
namespace panda { namespace unievent { namespace backend { namespace uv {
struct UVAsync : UVHandle<AsyncImpl, uv_async_t> {
UVAsync (UVLoop* loop, IAsyncImplListener* lst) : UVHandle<AsyncImpl, uv_async_t>(loop, lst) {
int err = uv_async_init(loop->uvloop, &uvh, [](uv_async_t* p){
get_handle<UVAsync*>(p)->handle_async();
});
if (err) throw Error(uvx_error(err));
}
void send () override {
int err = uv_async_send(&uvh);
if (err) throw Error(uvx_error(err));
}
};
}}}}