Hey all,

        Yesterday morning I decided to update the freebsd port for
libevent to 1.2 and send in a pr. Someone previously had bumped it up to
the 1.2 preview release that Niels had kindly let us play with.
Anyways.. afterwards I had the motivation to go work on a side project
of mine that uses libevent.  Well it started failing with the new
install.  I've stripped down a simple case that uses timers (which
triggers the problem), from a larger program (attached).  Can I get
others to try this out and see if they get invalid similar to this?

export -n NOKQUEUE
~/test> ./test-failure
[warn] kevent: Invalid argument
~/test> export EVENT_NOKQUEUE=1
~/test> ./test-failure
[warn] poll: Invalid argument
~/test> export EVENT_NOPOLL=1
~/test> ./test-failure
[warn] select: Invalid argument

Thanks..

        -Phil.
#include <stdio.h>
#include <sys/time.h>
#include <event.h>

#define OPT_USEC 125000

void
iteration(int fd, short event, void *arg)
{
  struct event *tev = (struct event *)arg;
  struct timeval start, end, nextloop, delay;
  static struct timeval sleep_tv = { 0, OPT_USEC };
  int i;

  /* figure out when the next iteration should trigger */
  gettimeofday(&start, (struct timezone *) 0);
  timeradd(&start, &sleep_tv, &nextloop);

  /* do something here */
  for( i = 0; i < 10; ++i )
    {
       fprintf( stderr, "Test %d\n", i );
    }

  /* subtract time it took to do the above from the sleep time */
  gettimeofday(&end, (struct timezone *) 0);
  timersub(&nextloop, &end, &delay);

  /* setup next iteration */
  evtimer_add(tev, &delay);
}

int
main(int argc, char **argv)
{
  struct timeval tvt, sleep_tv = { 0, OPT_USEC };
  struct event tev;

  /* setup the event system */
  event_init();

  /* Setup the initial game_iteration pass */
  gettimeofday(&tvt, (struct timezone *) 0);
  timeradd(&tvt, &sleep_tv, &tvt);

  evtimer_set(&tev, iteration, &tev);
  evtimer_add(&tev, &tvt);

  /* main control loop for the program */
  event_dispatch();
}
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to