Пример #1
0
picoev_loop* picoev_create_loop(int max_timeout)
{
  picoev_loop_epoll* loop;
  
  /* init parent */
  assert(PICOEV_IS_INITED);
  if ((loop = (picoev_loop_epoll*)malloc(sizeof(picoev_loop_epoll))) == NULL)
    return NULL;

  if (picoev_init_loop_internal(&loop->loop, max_timeout) != 0)
  {
    free(loop);
    return NULL;
  }
  
  /* init myself */
  if ((loop->epfd = epoll_create(picoev.max_fd)) == -1)
  {
    picoev_deinit_loop_internal(&loop->loop);
    free(loop);
    return NULL;
  }
  
  loop->loop.now = time(NULL);
  return &loop->loop;
}
Пример #2
0
picoev_loop* picoev_create_loop(int max_timeout)
{
  picoev_loop_kqueue* loop;
  
  /* init parent */
  assert(PICOEV_IS_INITED);
  if ((loop = (picoev_loop_kqueue*)malloc(sizeof(picoev_loop_kqueue)))
      == NULL) {
    return NULL;
  }
  if (picoev_init_loop_internal(&loop->loop, max_timeout) != 0) {
    free(loop);
    return NULL;
  }
  
  /* init kqueue */
  if ((loop->kq = kqueue()) == -1) {
    picoev_deinit_loop_internal(&loop->loop);
    free(loop);
    return NULL;
  }
  loop->changed_fds = -1;
  
  loop->loop.now = current_msec / 1000;
  return &loop->loop;
}
Пример #3
0
picoev_loop* picoev_create_loop(int max_timeout)
{
  picoev_loop* loop;
  
  assert(PICOEV_IS_INITED);
  if ((loop = (picoev_loop*)malloc(sizeof(picoev_loop))) == NULL) {
    return NULL;
  }
  if (picoev_init_loop_internal(loop, max_timeout) != 0) {
    free(loop);
    return NULL;
  }
  
  return loop;
}