如何将Windows IO完成端口HANDLE转换为自定义GSource的GLib的GPollFD?

问题描述

我很不幸地需要在所有三个主要OS上连接nodejs的libuv和GLib的MainLoop。我需要交错libuv的主循环和GLib的maing循环,以便项目的两个部分都能快乐并在一起生活。在Unix上,这很容易,因为libuv返回一个文件描述符以进行轮询:

GSource source;
// ...
g_source_add_unix_fd (&source->source,uv_backend_fd (loop),(GIOCondition) (G_IO_IN | G_IO_OUT | G_IO_ERR));

但是,在Windows上,没有文件描述符可以轮询。在uv的loop->iocp下有一个IO完成端口HANDLE。我不确定如何从这里继续。我当时想我应该使用GLIB中的以下功能:

void
g_source_add_poll (GSource *source,GPollFD *fd);

但是接下来我需要从中创建一个GPollFD,但是我不确定该怎么做或者它是否是正确的选择。欢迎任何可以帮助我进步的提示。

相关链接:https://github.com/romgrk/node-gtk/blob/master/src/loop.cc#L68-L75

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...