From ff148df8f694212e2cf13f0d43532949433831a2 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Wed, 26 Feb 2003 20:21:43 +0000 Subject: nginx-0.0.1-2003-02-26-23:21:43 import --- src/event/modules/ngx_aio_module.c | 37 ++++++++++++++++++++++++++++++++++- src/event/modules/ngx_aio_module.h | 14 +++++++++++++ src/event/modules/ngx_kqueue_module.c | 2 ++ src/event/ngx_event.c | 10 ++++++++++ src/event/ngx_event.h | 3 +++ src/event/ngx_event_accept.c | 3 +++ src/event/ngx_event_aio_write.c | 1 + 7 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/event/modules/ngx_aio_module.h (limited to 'src/event') 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 + +#include +#include +#include +#include +#include +#include + +#if (HAVE_KQUEUE) +#include +#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 +#include +#include + + +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 #endif +#if (HAVE_AIO) +#include +#endif + #if (HAVE_IOCP) #include #include @@ -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 @@ -82,6 +89,9 @@ void ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log) #if 0 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 #include #include +#include #if (HAVE_KQUEUE) #include -- cgit