static void do_os_wrappers_epoll_create_cloexec(int n) { int fd; int nr_fds; nr_fds = count_open_fds(); fd = wl_os_epoll_create_cloexec(); assert(fd >= 0); #ifdef EPOLL_CLOEXEC assert(wrapped_calls_epoll_create1 == n); #else printf("No epoll_create1.\n"); #endif exec_fd_leak_check(nr_fds); }
WL_EXPORT struct wl_event_loop * wl_event_loop_create(void) { struct wl_event_loop *loop; loop = malloc(sizeof *loop); if (loop == NULL) return NULL; loop->epoll_fd = wl_os_epoll_create_cloexec(); if (loop->epoll_fd < 0) { free(loop); return NULL; } wl_list_init(&loop->check_list); wl_list_init(&loop->idle_list); wl_list_init(&loop->destroy_list); wl_signal_init(&loop->destroy_signal); return loop; }