diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2003-02-26 20:21:43 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2003-02-26 20:21:43 +0000 |
| commit | ff148df8f694212e2cf13f0d43532949433831a2 (patch) | |
| tree | 1323b3de05544f57639c20080db3ac386bc0050d /src/event | |
| parent | 9a5f495afdf8cc1d33ae1741e1409c0bdcc3589d (diff) | |
| download | nginx-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.c | 37 | ||||
| -rw-r--r-- | src/event/modules/ngx_aio_module.h | 14 | ||||
| -rw-r--r-- | src/event/modules/ngx_kqueue_module.c | 2 | ||||
| -rw-r--r-- | src/event/ngx_event.c | 10 | ||||
| -rw-r--r-- | src/event/ngx_event.h | 3 | ||||
| -rw-r--r-- | src/event/ngx_event_accept.c | 3 | ||||
| -rw-r--r-- | src/event/ngx_event_aio_write.c | 1 |
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> |
