#include <cstdio> #include <errno.h> #include <sys/types.h> #include <event.h> #include <event2/event.h> #include <event2/event_struct.h> #include <event2/event-config.h> #include <event2/util.h> int lasttime; static void timeout_cb(int fd, short event, void *arg) { struct timeval tv; struct event *timeout = (struct event *)(arg); int newtime = time(NULL); printf("%s: called at %d: %d\n", "timeout_cb", newtime, newtime - lasttime); lasttime = newtime; evutil_timerclear(&tv); tv.tv_sec = 2; //重新注册event event_add(timeout, &tv); } int main(int argc, char **argv) { struct event timeout; struct timeval tv; //初始化event环境 event_init(); //设置事件 evtimer_set(&timeout, timeout_cb, &timeout); evutil_timerclear(&tv); tv.tv_sec = 2; //2s //注册事件 event_add(&timeout, &tv); lasttime = time(NULL); //等待,分发,处理事件 event_dispatch(); return (0); }
libevent::事件::定时器
猜你喜欢
转载自www.cnblogs.com/osbreak/p/10269728.html
今日推荐
周排行