static int ezApiCreate(ezEventLoop * eventLoop) { ezApiState *state = (ezApiState *) ez_malloc(sizeof(ezApiState)); if (!state) return AE_ERR; state->events = (struct epoll_event *)ez_malloc(sizeof(struct epoll_event) * eventLoop->setsize); if (!state->events) { ez_free(state); return AE_ERR; } state->epfd = epoll_create(1024); /* 1024 is just a hint for the kernel */ if (state->epfd == -1) { ez_free(state->events); ez_free(state); return AE_ERR; } state->evfd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); if (state->evfd == -1) { ez_free(state->events); ez_free(state); return AE_ERR; } eventLoop->apidata = state; return AE_OK; }
static void ezApiDelete(ezEventLoop * eventLoop) { ezApiState *state = eventLoop->apidata; close(state->epfd); close(state->evfd); ez_free(state->events); ez_free(state); }
void ez_list_free (EZList *list) { EZList *last; while (list) { last = list; list = list->next; ez_free (last); } }
void ez_list_free_with_data (EZList *list, ez_list_free_func func) { EZList *last; while (list) { last = list; list = list->next; if (func != NULL) { func (last->data); } ez_free (last); } }
void ez_list_free_1 (EZList *list) { ez_free (list); }