libevent 단순 응용_1_타이머

#include <event2/event.h>
#include <event2/util.h>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

using namespace std;

struct EventTimerParam
{
	struct timeval tv;
	void *ctx;
	void *evt;
};
	
void libevent_tick_event_cb(evutil_socket_t fd, short events, void *ctx)
{
	printf("function1 is called
"); EventTimerParam *pParam = (EventTimerParam*)ctx; pParam->tv.tv_sec = 1; evtimer_add((struct event*)pParam->evt, &pParam->tv); } int main() { struct event_base *base_; base_ = event_base_new(); if(!base_) { cout<<"Can't open event base"<<endl; return 1; } EventTimerParam *pTimerParam = (EventTimerParam*)malloc(sizeof(EventTimerParam)); memset(pTimerParam, 0, sizeof(EventTimerParam)); struct event *ev = evtimer_new(base_, libevent_tick_event_cb, pTimerParam); pTimerParam->evt = ev; pTimerParam->ctx = NULL; pTimerParam->tv.tv_sec = 1; evtimer_add(ev, &pTimerParam->tv); int err = event_base_dispatch(base_); //int err = event_base_loop(base_, EVLOOP_ONCE); // int err = event_base_loop(base_, EVLOOP_NONBLOCK); cout<<"err = "<< err <<endl; return 0; }

컴파일 방법:
g++ -o test_timer test_timer.cpp -levent

좋은 웹페이지 즐겨찾기