libev を使用して C++ で非同期メソッドを作成しようとしています。必要に応じて、コールバック メソッドを引数として渡すことができます。
例えば
test();
printf("After test() method\n");
これtest()
は非同期メソッドであるため、実行が完了するprintf()
前に次のステートメントを実行する必要があります。test()
libev
この簡単な例に使用してみました:
void testCallback(struct ev_loop *loop, struct ev_io *watcher, int revents)
{
sleep(5);
ev_io_stop(loop, watcher);
}
int test()
{
struct ev_loop *loop = ev_default_loop(0);
ev_io watch;
ev_io_init(&watch, testCallback, 0, EV_READ);
ev_io_start(loop, &watch);
ev_run(loop, 0);
return 0;
}
int main() {
test();
printf("After test() method");
return 0;
}
この例では、printf
イベント ループが停止した後に が実行されます。この種の機能は libev を使用して可能ですか? 私はグーグルで検索しましたが、この種の必要性の例はありませんでした。