понедельник, 26 сентября 2011 г.

/* libevent timers example */


#include <stdio.h>

#include <event2/event.h>


struct event_base * base;


struct event * timer1;

struct event * timer2;


struct timeval period1 = {1, 0};

struct timeval period2 = {2, 0};


int tc1 = 10;

int tc2 = 5;


void timer1_handler(int fd, short int fo, void* arg)

{

    printf("timer 1\n");

    if(tc1 > 0)

    {

        tc1--;

        evtimer_add(timer1, &period1);     

    }

}


void timer2_handler(int fd, short int fo, void* arg)

{

    printf("timer 2\n");

    if(tc2 > 0)

    {

        tc2--;

        evtimer_add(timer2, &period2);

    }

}


int main()

{

    struct event_config *cfg = event_config_new();

    event_config_avoid_method(cfg, "epoll");

    base = event_base_new_with_config(cfg);

    event_config_free(cfg);

 

    timer1 = evtimer_new(base, timer1_handler, NULL);

    timer2 = evtimer_new(base, timer2_handler, NULL); 

    evtimer_add(timer1, &period1); 

    evtimer_add(timer2, &period2);

 

    event_base_dispatch(base);

 

    return 0;

}


* This source code was highlighted with Source Code Highlighter.