我正在尝试使用 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 可以实现这种功能吗?我用谷歌搜索,但找不到这种需要的例子。