- 主题:kevent的问题
手头有个旧程序,在Linux平台用kevent而非epoll监听事件
当我想看看它运行时在干什么的时候,我就用strace命令挂上去
结果kevent syscall居然就返回了负数,附带EINTR错误
类似的情况,如果是epoll,我记得strace应该是可以看到,这个程序正在执行
epoll_wait的吧;为什么到kevent世界,稍微一观测就塌缩呢?
--
修改:JulyClyde FROM 222.71.112.*
FROM 222.71.112.*
不惜移植内核,也要坚持使用的旧软件
【 在 hgoldfish 的大作中提到: 】
: kevent 和 kqueue 不都是是 bsd 的吗?
: linux 怎么会有 kevent 呢?
--
FROM 222.71.112.*
我strace进去其实还是epoll
不知是不是拿wrapper冒充的syscall
【 在 chunhui 的大作中提到: 】
: 你把kevt移植到linux上面去了?
--
FROM 139.227.19.*
libevent是在各平台选各自的
和我的这情况根本不一样
【 在 redor 的大作中提到: 】
: 用libevent就行了
--
FROM 139.227.19.*
我这里的内核是改过的
我还以为是移植到内核里去了
没想到strace看了看其实是epoll
那内核里到底改了啥呢
【 在 redor 的大作中提到: 】
: kevent只有bsd系列采用,要一致只能用可兼容的第三方封装库,貌似没有别的办法。
--
FROM 222.71.112.*
应该是套了
但是不太明白
因为这边用的内核是改装过的,那按说应该kevent是个syscall啊
为什么strace看出来是epoll_pwait呢?
【 在 redor 的大作中提到: 】
: 是不是套了壳? linux原生之有epoll/select/poll
--
FROM 222.71.112.*