ibev的代码很简练 但对于看他代码的人 简直就是噩梦 到处都是宏 宏还嵌套 于是我在看libev代码时 对其进行了还原 去掉了宏
4 | struct ev_watcher_list *list; |
9 | void (*cb)(structev_loop *loop, structev_io *w,int revents); |
ev_io在触发EV_READ或者是EV_WRITE被调用
8 | void (*cb)(structev_loop *loop, structev_timer *w,int revents); |
ev_timer在特定的时间调用,并周期性进行,其基于单调时钟
(PS:单调时钟:此时间来源会严格的线性递增,一般linux会使用系统正常运行时间来表示,也就是从开机开始算起) 触发事件EV_TIMEOUT
4 | ev_tstamp (*reschedule_cb)(structev_periodic *w, ev_tstamp now); |
10 | void (*cb)(structev_loop *loop, structev_periodic *w,int revents); |
ev_periodic在特定的时间调用,可能会在定期间隔反复调用,其基于UTC时间
(PS:UTC:协调时间 也就是从1970年1月1日00:00:00开始记时) 触发事件EV_PERIODIC
3 | struct ev_watcher_list *next; |
8 | void (*cb)(structev_loop *loop, structev_signal *w,int revents); |
ev_signal当接收到指定的信号时调用 触发事件EV_SIGNAL
6 | struct ev_watcher_list *next; |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!