nginx-0.0.1-2002-08-26-19:18:19 import
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c
index 38bf7c0..b18d492 100644
--- a/src/event/modules/ngx_aio_module.c
+++ b/src/event/modules/ngx_aio_module.c
@@ -1,4 +1,14 @@
+/* 1 */
+int ngx_posix_aio_process_events(ngx_log_t *log)
+{
+ listen via SIGIO;
+ aio_* via SIGxxx;
+
+ sigsuspend()/sigwaitinfo()/sigtimedwait();
+}
+
+/* 2 */
int ngx_posix_aio_process_events(ngx_log_t *log)
{
unmask signal
@@ -18,6 +28,7 @@
aio
}
+/* 3 */
int ngx_posix_aio_process_events(ngx_log_t *log)
{
unmask signal
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 54e9474..f7dee18 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -18,7 +18,7 @@
#error "kqueue is not supported on this platform"
#endif
-static void ngx_add_timer(ngx_event_t *ev, u_int timer);
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer);
static void ngx_inline ngx_del_timer(ngx_event_t *ev);
@@ -35,9 +35,11 @@
nchanges = 0;
nevents = 512;
- if ((kq = kqueue()) == -1)
+ if ((kq = kqueue()) == -1) {
ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
- "ngx_kqueue_init: kqueue failed");
+ "kqueue() failed");
+ exit(1);
+ }
change_list = ngx_alloc(size, log);
event_list = ngx_alloc(size, log);
@@ -56,7 +58,7 @@
int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
{
if (event == NGX_TIMER_EVENT) {
- ngx_add_timer(ev, flags);
+ ngx_add_timer_core(ev, flags);
return 0;
}
@@ -154,8 +156,14 @@
delta -= ev->timer_delta;
nx = ev->timer_next;
ngx_del_timer(ev);
+#if 1
+ ev->timedout = 1;
+ if (ev->event_handler(ev) == -1)
+ ev->close_handler(ev);
+#else
if (ev->timer_handler(ev) == -1)
ev->close_handler(ev);
+#endif
ev = nx;
}
@@ -207,7 +215,7 @@
return 0;
}
-static void ngx_add_timer(ngx_event_t *ev, u_int timer)
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer)
{
ngx_event_t *e;
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 6c9e8f3..bde14a1 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -23,7 +23,7 @@
static ngx_event_t timer_queue;
-static void ngx_add_timer(ngx_event_t *ev, u_int timer);
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer);
static void ngx_inline ngx_del_timer(ngx_event_t *ev);
static fd_set *ngx_select_get_fd_set(ngx_socket_t fd, int event,
@@ -31,19 +31,17 @@
void ngx_select_init(int max_connections, ngx_log_t *log)
{
+ if (max_connections > FD_SETSIZE) {
+ ngx_log_error(NGX_LOG_EMERG, log, 0,
#if (WIN32)
- if (max_connections > FD_SETSIZE)
- ngx_log_error(NGX_LOG_EMERG, log, 0,
- "ngx_select_init: maximum number of descriptors "
- "supported by select() is %d",
- FD_SETSIZE);
+ "maximum number of descriptors "
+ "supported by select() is %d", FD_SETSIZE);
#else
- if (max_connections >= FD_SETSIZE)
- ngx_log_error(NGX_LOG_EMERG, log, 0,
- "ngx_select_init: maximum descriptor number"
- "supported by select() is %d",
- FD_SETSIZE - 1);
+ "maximum descriptor number"
+ "supported by select() is %d", FD_SETSIZE - 1);
#endif
+ exit(1);
+ }
FD_ZERO(&master_read_fds);
FD_ZERO(&master_write_fds);
@@ -71,7 +69,7 @@
ngx_connection_t *cn = (ngx_connection_t *) ev->data;
if (event == NGX_TIMER_EVENT) {
- ngx_add_timer(ev, flags);
+ ngx_add_timer_core(ev, flags);
return 0;
}
@@ -271,8 +269,14 @@
delta -= ev->timer_delta;
nx = ev->timer_next;
ngx_del_timer(ev);
+#if 1
+ ev->timedout = 1;
+ if (ev->event_handler(ev) == -1)
+ ev->close_handler(ev);
+#else
if (ev->timer_handler(ev) == -1)
ev->close_handler(ev);
+#endif
ev = nx;
}
@@ -316,7 +320,7 @@
return 0;
}
-static void ngx_add_timer(ngx_event_t *ev, u_int timer)
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer)
{
ngx_event_t *e;