summaryrefslogtreecommitdiffhomepage
path: root/src/event/modules/ngx_aio_module.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2002-08-06 16:39:45 +0000
committerIgor Sysoev <igor@sysoev.ru>2002-08-06 16:39:45 +0000
commit6de5c2cb63f8aee4bcbec3c363a72fd8e4a4e64d (patch)
tree0e4da305f8101799b6c6aa3002cecf539c2578c0 /src/event/modules/ngx_aio_module.c
downloadnginx-6de5c2cb63f8aee4bcbec3c363a72fd8e4a4e64d.tar.gz
nginx-6de5c2cb63f8aee4bcbec3c363a72fd8e4a4e64d.tar.bz2
nginx-0.0.1-2002-08-06-20:39:45 import
The first code that uses "ngx_" prefix, the previous one used "gx_" prefix. At that point the code is not yet usable. The first draft ideas are dated back to 23.10.2001.
Diffstat (limited to 'src/event/modules/ngx_aio_module.c')
-rw-r--r--src/event/modules/ngx_aio_module.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c
new file mode 100644
index 000000000..939c5c07e
--- /dev/null
+++ b/src/event/modules/ngx_aio_module.c
@@ -0,0 +1,37 @@
+
+int ngx_posix_aio_process_events(ngx_log_t *log)
+{
+ unmask signal
+
+ listen via signal;
+
+ aio_suspend()/aiowait()/aio_waitcomplete();
+
+ mask signal
+
+ if (ngx_socket_errno == NGX_EINTR)
+ look listen
+ select()/accept() nb listen sockets
+ else
+ aio
+}
+
+int ngx_posix_aio_process_events(ngx_log_t *log)
+{
+ unmask signal
+
+ /* BUG: signal can be delivered before select() */
+
+ select(listen);
+
+ mask signal
+
+ if (ngx_socket_errno == NGX_EINTR)
+ look ready array
+}
+
+void aio_sig_handler(int signo, siginfo_t *siginfo, void *context)
+{
+ push siginfo->si_value.sival_ptr
+}
+