Lines Matching refs:loop

48 static void uv__fs_event(uv_loop_t* loop, uv__io_t* w, unsigned int fflags);
51 int uv__kqueue_init(uv_loop_t* loop) {
52 loop->backend_fd = kqueue();
53 if (loop->backend_fd == -1)
56 uv__cloexec(loop->backend_fd, 1);
66 int uv__io_fork(uv_loop_t* loop) {
68 loop->backend_fd = -1;
69 err = uv__kqueue_init(loop);
74 if (loop->cf_state != NULL) {
86 uv__free(loop->cf_state);
87 loop->cf_state = NULL;
94 int uv__io_check_fd(uv_loop_t* loop, int fd) {
100 if (kevent(loop->backend_fd, &ev, 1, NULL, 0, NULL))
105 if (kevent(loop->backend_fd, &ev, 1, NULL, 0, NULL))
112 void uv__io_poll(uv_loop_t* loop, int timeout) {
136 if (loop->nfds == 0) {
137 assert(QUEUE_EMPTY(&loop->watcher_queue));
143 while (!QUEUE_EMPTY(&loop->watcher_queue)) {
144 q = QUEUE_HEAD(&loop->watcher_queue);
151 assert(w->fd < (int) loop->nwatchers);
168 if (kevent(loop->backend_fd, events, nevents, NULL, 0, NULL))
178 if (kevent(loop->backend_fd, events, nevents, NULL, 0, NULL))
188 if (kevent(loop->backend_fd, events, nevents, NULL, 0, NULL))
198 if (loop->flags & UV_LOOP_BLOCK_SIGPROF) {
205 base = loop->time;
208 if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
218 * will return early if the loop isn't configured with UV_METRICS_IDLE_TIME.
221 uv__metrics_set_provider_entry_time(loop);
231 nfds = kevent(loop->backend_fd,
241 /* Update loop->time unconditionally. It's tempting to skip the update when
245 SAVE_ERRNO(uv__update_time(loop));
283 assert(loop->watchers != NULL);
284 loop->watchers[loop->nwatchers] = (void*) events;
285 loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds;
292 QUEUE_FOREACH(q, &loop->process_handles) {
296 loop->flags |= UV_LOOP_REAP_CHILDREN;
307 w = loop->watchers[fd];
315 if (kevent(loop->backend_fd, events, 1, NULL, 0, NULL))
325 uv__metrics_update_idle_time(loop);
326 w->cb(loop, w, ev->fflags); /* XXX always uv__fs_event() */
341 if (kevent(loop->backend_fd, events, 1, NULL, 0, NULL))
357 if (kevent(loop->backend_fd, events, 1, NULL, 0, NULL))
371 if (kevent(loop->backend_fd, events, 1, NULL, 0, NULL))
386 if (w == &loop->signal_io_watcher) {
389 uv__metrics_update_idle_time(loop);
390 w->cb(loop, w, revents);
396 if (loop->flags & UV_LOOP_REAP_CHILDREN) {
397 loop->flags &= ~UV_LOOP_REAP_CHILDREN;
398 uv__wait_children(loop);
407 uv__metrics_update_idle_time(loop);
408 loop->signal_io_watcher.cb(loop, &loop->signal_io_watcher, POLLIN);
411 loop->watchers[loop->nwatchers] = NULL;
412 loop->watchers[loop->nwatchers + 1] = NULL;
415 return; /* Event loop should cycle now so don't poll again. */
435 diff = loop->time - base;
444 void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) {
449 assert(loop->watchers != NULL);
452 events = (struct kevent*) loop->watchers[loop->nwatchers];
453 nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1];
464 static void uv__fs_event(uv_loop_t* loop, uv__io_t* w, unsigned int fflags) {
501 if (kevent(loop->backend_fd, &ev, 1, NULL, 0, NULL))
506 int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle) {
507 uv__handle_init(loop, (uv_handle_t*)handle, UV_FS_EVENT);
569 uv__io_start(handle->loop, &handle->event_watcher, POLLIN);
591 uv__io_close(handle->loop, &handle->event_watcher);