C gwan如何实现异步操作?

C gwan如何实现异步操作?,c,asynchronous,g-wan,C,Asynchronous,G Wan,Gwan文档声称使用BSD套接字的C脚本是透明的异步管理的 如何确保我在C脚本中使用的给定代码/库在执行网络操作时会异步运行?例如,有没有办法在日志中检查这一点 在执行磁盘IO时,我会有类似的请求。例如,imgsz.c示例通过ImageMagick.MagickReadImage()函数从磁盘读取图像。此磁盘读取操作是异步管理的吗?或者应该重写imgsz.c示例(例如使用xbuf_frfile()和MagickReadImageBlob() 提前谢谢你的帮助 如何确保给定的代码/库 G-WAN提

Gwan文档声称使用BSD套接字的C脚本是透明的异步管理的

如何确保我在C脚本中使用的给定代码/库在执行网络操作时会异步运行?例如,有没有办法在日志中检查这一点

在执行磁盘IO时,我会有类似的请求。例如,imgsz.c示例通过ImageMagick.MagickReadImage()函数从磁盘读取图像。此磁盘读取操作是异步管理的吗?或者应该重写imgsz.c示例(例如使用xbuf_frfile()和MagickReadImageBlob()

提前谢谢你的帮助

如何确保给定的代码/库

G-WAN提供了代码将调用的函数,因此当G-WAN启用此功能时,共享库(或G-WAN C/C++、D和Objective-C脚本)没有正常的方法绕过此功能

Java和C#可以绕过此功能,因为它们使用虚拟机(不在G-WAN进程的范围内)

在执行磁盘I/O时,我会有类似的请求

不幸的是,epoll不支持用于打开磁盘文件的文件描述符(它支持管道和套接字)


如果磁盘延迟是一个问题,则使用RAM磁盘(如果您需要比可用RAM多得多的空间,则使用SSD)。

您描述的磁盘i/o限制是否也适用于g-wan本身(例如用于提供静态文件),还是仅用于C脚本中的文件访问。这是一个(系统)epoll限制,这是针对G-WAN及其脚本的。其他机制允许文件IO异步,但对于G-WAN这样的服务器来说,这并不重要,因为这里的瓶颈是网络IO(而不是文件IO)。