nxt_event_engine.c (4:76c63e9b6322) nxt_event_engine.c (6:6b3ce47b7663)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 95 unchanged lines hidden (view full) ---

104 }
105
106 engine->event = event_set;
107
108 if (nxt_event_engine_post_init(engine) != NXT_OK) {
109 goto post_fail;
110 }
111
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 95 unchanged lines hidden (view full) ---

104 }
105
106 engine->event = event_set;
107
108 if (nxt_event_engine_post_init(engine) != NXT_OK) {
109 goto post_fail;
110 }
111
112 if (nxt_event_timers_init(&engine->timers, 4 * events) != NXT_OK) {
112 if (nxt_timers_init(&engine->timers, 4 * events) != NXT_OK) {
113 goto timers_fail;
114 }
115
116 nxt_thread_time_update(thr);
117 engine->timers.now = nxt_thread_monotonic_time(thr) / 1000000;
118
119 engine->max_connections = 0xffffffff;
120

--- 395 unchanged lines hidden (view full) ---

516 break;
517 }
518
519 handler(task, obj, data);
520 }
521
522 /* Attach some event engine work queues in preferred order. */
523
113 goto timers_fail;
114 }
115
116 nxt_thread_time_update(thr);
117 engine->timers.now = nxt_thread_monotonic_time(thr) / 1000000;
118
119 engine->max_connections = 0xffffffff;
120

--- 395 unchanged lines hidden (view full) ---

516 break;
517 }
518
519 handler(task, obj, data);
520 }
521
522 /* Attach some event engine work queues in preferred order. */
523
524 timeout = nxt_event_timer_find(engine);
524 timeout = nxt_timer_find(engine);
525
526 engine->event->poll(&engine->task, engine->event_set, timeout);
527
528 /*
529 * Look up expired timers only if a new zero timer has been
530 * just added before the event poll or if the event poll slept
531 * at least 1 millisecond, because all old eligible timers were
532 * processed in the previous iterations.
533 */
534
535 now = nxt_thread_monotonic_time(thr) / 1000000;
536
537 if (timeout == 0 || now != engine->timers.now) {
525
526 engine->event->poll(&engine->task, engine->event_set, timeout);
527
528 /*
529 * Look up expired timers only if a new zero timer has been
530 * just added before the event poll or if the event poll slept
531 * at least 1 millisecond, because all old eligible timers were
532 * processed in the previous iterations.
533 */
534
535 now = nxt_thread_monotonic_time(thr) / 1000000;
536
537 if (timeout == 0 || now != engine->timers.now) {
538 nxt_event_timer_expire(thr, now);
538 nxt_timer_expire(thr, now);
539 }
540 }
541}
539 }
540 }
541}