Lines Matching defs:loop

81 int uv__platform_loop_init(uv_loop_t* loop) {
82 loop->fs_fd = -1;
86 loop->backend_fd = pollset_create(-1);
88 if (loop->backend_fd == -1)
95 void uv__platform_loop_delete(uv_loop_t* loop) {
96 if (loop->fs_fd != -1) {
97 uv__close(loop->fs_fd);
98 loop->fs_fd = -1;
101 if (loop->backend_fd != -1) {
102 pollset_destroy(loop->backend_fd);
103 loop->backend_fd = -1;
108 int uv__io_fork(uv_loop_t* loop) {
109 uv__platform_loop_delete(loop);
111 return uv__platform_loop_init(loop);
115 int uv__io_check_fd(uv_loop_t* loop, int fd) {
122 if (pollset_ctl(loop->backend_fd, &pc, 1))
126 if (pollset_ctl(loop->backend_fd, &pc, 1))
133 void uv__io_poll(uv_loop_t* loop, int timeout) {
153 if (loop->nfds == 0) {
154 assert(uv__queue_empty(&loop->watcher_queue));
158 lfields = uv__get_internal_fields(loop);
160 while (!uv__queue_empty(&loop->watcher_queue)) {
161 q = uv__queue_head(&loop->watcher_queue);
168 assert(w->fd < (int) loop->nwatchers);
176 if (pollset_ctl(loop->backend_fd, &pc, 1)) {
183 rc = pollset_query(loop->backend_fd, &pqry);
205 if (pollset_ctl(loop->backend_fd, &pc, 1)) {
210 if (pollset_ctl(loop->backend_fd, &pc, 1)) {
220 base = loop->time;
233 * will return early if the loop isn't configured with UV_METRICS_IDLE_TIME.
236 uv__metrics_set_provider_entry_time(loop);
244 nfds = pollset_poll(loop->backend_fd,
249 /* Update loop->time unconditionally. It's tempting to skip the update when
253 SAVE_ERRNO(uv__update_time(loop));
292 assert(loop->watchers != NULL);
293 loop->watchers[loop->nwatchers] = (void*) events;
294 loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds;
306 assert((unsigned) pc.fd < loop->nwatchers);
308 w = loop->watchers[pc.fd];
316 pollset_ctl(loop->backend_fd, &pc, 1);
323 if (w == &loop->signal_io_watcher) {
326 uv__metrics_update_idle_time(loop);
327 w->cb(loop, w, pe->revents);
333 uv__metrics_inc_events(loop, nevents);
337 uv__metrics_inc_events_waiting(loop, nevents);
341 uv__metrics_update_idle_time(loop);
342 loop->signal_io_watcher.cb(loop, &loop->signal_io_watcher, POLLIN);
345 loop->watchers[loop->nwatchers] = NULL;
346 loop->watchers[loop->nwatchers + 1] = NULL;
349 return; /* Event loop should cycle now so don't poll again. */
369 diff = loop->time - base;
719 static void uv__ahafs_event(uv_loop_t* loop, uv__io_t* event_watch, unsigned int fflags) {
773 int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle) {
775 uv__handle_init(loop, (uv_handle_t*)handle, UV_FS_EVENT);
836 uv__io_start(handle->loop, &handle->event_watcher, POLLIN);
840 * eventuality of an event that occurs in the current loop. */
859 uv__io_close(handle->loop, &handle->event_watcher);
1211 /* All conditions above must match count loop */
1296 void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) {
1302 assert(loop->watchers != NULL);
1305 events = (struct pollfd*) loop->watchers[loop->nwatchers];
1306 nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1];
1318 if(loop->backend_fd >= 0)
1319 pollset_ctl(loop->backend_fd, &pc, 1);