summaryrefslogtreecommitdiffhomepage
path: root/src/event
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-02-26 20:21:43 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-02-26 20:21:43 +0000
commitff148df8f694212e2cf13f0d43532949433831a2 (patch)
tree1323b3de05544f57639c20080db3ac386bc0050d /src/event
parent9a5f495afdf8cc1d33ae1741e1409c0bdcc3589d (diff)
downloadnginx-ff148df8f694212e2cf13f0d43532949433831a2.tar.gz
nginx-ff148df8f694212e2cf13f0d43532949433831a2.tar.bz2
nginx-0.0.1-2003-02-26-23:21:43 import
Diffstat (limited to 'src/event')
-rw-r--r--src/event/modules/ngx_aio_module.c37
-rw-r--r--src/event/modules/ngx_aio_module.h14
-rw-r--r--src/event/modules/ngx_kqueue_module.c2
-rw-r--r--src/event/ngx_event.c10
-rw-r--r--src/event/ngx_event.h3
-rw-r--r--src/event/ngx_event_accept.c3
-rw-r--r--src/event/ngx_event_aio_write.c1
7 files changed, 69 insertions, 1 deletions
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c
index b18d4928a..f2d0e83c7 100644
--- a/src/event/modules/ngx_aio_module.c
+++ b/src/event/modules/ngx_aio_module.c
@@ -1,4 +1,39 @@
+#include <ngx_config.h>
+
+#include <ngx_core.h>
+#include <ngx_types.h>
+#include <ngx_log.h>
+#include <ngx_connection.h>
+#include <ngx_event.h>
+#include <ngx_event_timer.h>
+
+#if (HAVE_KQUEUE)
+#include <ngx_kqueue_module.h>
+#endif
+
+
+int ngx_aio_init(int max_connections, ngx_log_t *log)
+{
+#if (HAVE_KQUEUE)
+
+ int rc;
+
+ rc = ngx_kqueue_init(max_connections, log);
+
+ ngx_event_flags = NGX_HAVE_AIO_EVENT;
+ ngx_write_chain_proc = ngx_aio_write_chain;
+
+ return rc;
+
+#endif
+}
+
+
+
+
+
+#if 0
/* 1 */
int ngx_posix_aio_process_events(ngx_log_t *log)
{
@@ -47,4 +82,4 @@ void aio_sig_handler(int signo, siginfo_t *siginfo, void *context)
{
push siginfo->si_value.sival_ptr
}
-
+#endif
diff --git a/src/event/modules/ngx_aio_module.h b/src/event/modules/ngx_aio_module.h
new file mode 100644
index 000000000..71eb9e4d7
--- /dev/null
+++ b/src/event/modules/ngx_aio_module.h
@@ -0,0 +1,14 @@
+#ifndef _NGX_AIO_MODULE_H_INCLUDED_
+#define _NGX_AIO_MODULE_H_INCLUDED_
+
+
+#include <ngx_types.h>
+#include <ngx_log.h>
+#include <ngx_event.h>
+
+
+int ngx_aio_init(int max_connections, ngx_log_t *log);
+int ngx_aio_process_events(ngx_log_t *log);
+
+
+#endif /* _NGX_AIO_MODULE_H_INCLUDED_ */
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 501b4960e..fc0e34f62 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -79,6 +79,8 @@ int ngx_kqueue_init(int max_connections, ngx_log_t *log)
#endif
|NGX_HAVE_KQUEUE_EVENT;
+ ngx_write_chain_proc = ngx_freebsd_write_chain;
+
#endif
#endif
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 84e5e29da..1310f34da 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -25,6 +25,10 @@
#include <ngx_kqueue_module.h>
#endif
+#if (HAVE_AIO)
+#include <ngx_aio_module.h>
+#endif
+
#if (HAVE_IOCP)
#include <ngx_event_acceptex.h>
#include <ngx_iocp_module.h>
@@ -54,6 +58,9 @@ static int (*ngx_event_init[]) (int max_connections, ngx_log_t *log) = {
#if (HAVE_KQUEUE)
ngx_kqueue_init,
#endif
+#if (HAVE_AIO)
+ ngx_aio_init,
+#endif
#if (HAVE_IOCP)
ngx_iocp_init
#endif
@@ -83,6 +90,9 @@ void ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log)
ngx_event_type = NGX_DEVPOLL_EVENT_N;
#endif
#if 0
+ ngx_event_type = NGX_AIO_EVENT_N;
+#endif
+#if 0
ngx_event_type = NGX_IOCP_EVENT_N;
#endif
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 450fbe2b4..6af76ff3b 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -116,6 +116,9 @@ typedef enum {
#if (HAVE_KQUEUE)
NGX_KQUEUE_EVENT_N,
#endif
+#if (HAVE_AIO)
+ NGX_AIO_EVENT_N,
+#endif
#if (HAVE_IOCP)
NGX_IOCP_EVENT_N,
#endif
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 941f57c4e..65d99da03 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -156,6 +156,9 @@ int ngx_event_accept(ngx_event_t *ev)
#elif (HAVE_KQUEUE)
+/*
+ if (ngx_event_type == NGX_HAVE_AIO_EVENT or NGX_HAVE_KQUEUE_EVENT) {
+*/
if (ngx_event_type == NGX_HAVE_KQUEUE_EVENT) {
ev->available--;
}
diff --git a/src/event/ngx_event_aio_write.c b/src/event/ngx_event_aio_write.c
index 00da4f4cc..72d35c412 100644
--- a/src/event/ngx_event_aio_write.c
+++ b/src/event/ngx_event_aio_write.c
@@ -5,6 +5,7 @@
#include <ngx_log.h>
#include <ngx_recv.h>
#include <ngx_connection.h>
+#include <ngx_event.h>
#if (HAVE_KQUEUE)
#include <ngx_kqueue_module.h>