-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
1 回调函数或者hio_t需要上下文
读完成/写完成/关闭回调函数也许应该增加一个上下文参数,以便回调函数可以对不同的hio_t进行不同的处理。或者,允许对 hio_t 设置用户数据,就像对 hloop_t 那样。至少,应该提供接口,获取 hio_t 关联到的 hloop_t ,然后再获取 hloop_t 的用户数据。
现在这样的回调函数,太简单,不方便编程。
2 读写失败时的回调问题
读写失败了,就不会调用读写完成回调函数,而是调用关闭回调函数。这太简单了,如果我需要在读写完成回调函数中进行资源释放,该怎么办?需要额外编码记住进行中的读写操作,在关闭回调函数中对没有完成的读写操作进行处理(还不知道读写失败的错误码),这增加了复杂性。
建议参考Windows完成端口的设计
(1) 每个 hio_t 可以关联一个上下文(CreateIoCompletionPort函数的第3个参数)
(2) 每个读写操作可以关联一个上下文(OVERLAPPED结构体)
(3) 无论读写是成功,还是出错完成,都要调用完成回调函数。
代码中是有 hoverlapped_s 类型的,能否开放出来,供用户使用?
我刚开始用 libhv,发现有上述问题,也许是对libhv不熟悉,使用方法错了,请指正。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels