如何在Haskell中使用aio_read(3)?

如何在Haskell中使用aio_read(3)?,haskell,asynchronous,io,Haskell,Asynchronous,Io,在Linux中,可以通过从C调用异步读取文件。结构是参数之一,可以指定不同的选项,以便在操作完成时通知。让我总结一下: SIGEV\u无无通知 可使用aio_错误(3)检查状态。操作是异步的,但必须在某个循环中等待完成,这不是我想要的 SIGEV_信号向进程发出信号 理论上,这可以通过在Haskell中安装一个信号处理器来实现。但是有一个问题:SignalInfo的API没有包含关键的si_值,让我们交流一些关于读取请求的细节,比如StaticPtr。这是不幸的 SIGEV_线程根据文档,这将

在Linux中,可以通过从C调用异步读取文件。结构是参数之一,可以指定不同的选项,以便在操作完成时通知。让我总结一下:

  • SIGEV\u无无通知

    可使用aio_错误(3)检查状态。操作是异步的,但必须在某个循环中等待完成,这不是我想要的

  • SIGEV_信号向进程发出信号

    理论上,这可以通过在Haskell中安装一个信号处理器来实现。但是有一个问题:
    SignalInfo
    的API没有包含关键的
    si_值
    ,让我们交流一些关于读取请求的细节,比如
    StaticPtr
    。这是不幸的

  • SIGEV_线程根据文档,这将启动一个新线程

    我不知道如何在Haskell中表达这一点。我最好的猜测是一个
    IO()
    操作。我不知道如何编写附带的本机代码


我如何在Haskell中使用
aio_read
或类似的东西?我可能不会在这个(或图书馆)上使用FFI