#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <error.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <event.h>
#include <event2/event-config.h>
#include <event2/event_struct.h>
#include <event2/event.h>
#include <event2/event_compat.h>
#include <sys/time.h>
#include <time.h>
#include <sys/types.h>
static struct timeval t1={1,0};
void call_back(evutil_socket_t sock ,short which,void *arg)
{
printf("call back\n");
// struct event *ev1=(struct event *)arg;
//evtimer_add(ev1,&t1);
}
void timer2(evutil_socket_t sock ,short which,void *arg)
{
printf("timer2\n");
}
int main(int argc, char *argv[])
{
struct event_base *base=event_base_new();
if(signal(SIGPIPE,SIG_IGN)==SIG_ERR)
return 1;
static struct timeval t2;
t2.tv_sec=1;
t2.tv_usec=200000;
//持久定时器
struct event *ev2=event_new(base ,-1,EV_PERSIST,timer2,0);
event_add(ev2,&t2);
//非持久定时器
struct event *ev1=evtimer_new(base,
call_back,
event_self_cbarg());
if(!ev1)
{
printf("evtimer_new\n");
exit(1);
}
// 超时优化性能 默认event用二叉堆 存储完全二叉树 插入删除0(logn)
//优化到双向队列
static timeval t3;
evtimer_add(ev1,&t1);
event_base_dispatch(base);
event_base_free(base);
return 0;
}
libevent学习笔记 定时器使用
最新推荐文章于 2021-11-11 14:29:02 发布