我正在使用内核级异步 I/O(即libaio.h
)。在提交struct iocb
使用之前,io_submit
我使用io_set_callback
将函数指针插入iocb->data
. io_getevents
最后,我使用并运行每个回调来获取已完成的事件。
我希望能够在回调中使用一些上下文信息(例如提交时间戳)。我能想到的唯一方法是继续使用io_getevents
,但要iocb->data
指向一个带有上下文和回调的结构。
有没有其他方法可以做这样的事情,并且iocb->data
保证在使用时不会受到影响io_getevents
?我的理解是,还有另一种方法可以自动运行回调,如果不指向函数libaio
,这将是一个问题。iocb->data
这里的任何澄清都会很好。上的文档libaio
似乎真的很缺乏。