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; }
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; }
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; }