diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2004-09-28 08:34:51 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2004-09-28 08:34:51 +0000 |
| commit | d90282d8ba69973d6612c405e52636085623ddcd (patch) | |
| tree | 59e36e780b2f5b8f9348013d3037f8fc06ba0247 /src/event | |
| parent | 6d2a14aa906b1d576d5151b2410b59cfcab5edd4 (diff) | |
| download | nginx-d90282d8ba69973d6612c405e52636085623ddcd.tar.gz nginx-d90282d8ba69973d6612c405e52636085623ddcd.tar.bz2 | |
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Diffstat (limited to 'src/event')
35 files changed, 137 insertions, 655 deletions
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c index 7f9a22cec..c62e1d501 100644 --- a/src/event/modules/ngx_aio_module.c +++ b/src/event/modules/ngx_aio_module.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/modules/ngx_aio_module.h b/src/event/modules/ngx_aio_module.h index 71eb9e4d7..80bd39396 100644 --- a/src/event/modules/ngx_aio_module.h +++ b/src/event/modules/ngx_aio_module.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_AIO_MODULE_H_INCLUDED_ #define _NGX_AIO_MODULE_H_INCLUDED_ diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c index 3706e0159..ee29a72a8 100644 --- a/src/event/modules/ngx_devpoll_module.c +++ b/src/event/modules/ngx_devpoll_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c index ebe2cabfe..ace4cf344 100644 --- a/src/event/modules/ngx_epoll_module.c +++ b/src/event/modules/ngx_epoll_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c index 5273152ed..5d1d75849 100644 --- a/src/event/modules/ngx_iocp_module.c +++ b/src/event/modules/ngx_iocp_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_iocp_module.h b/src/event/modules/ngx_iocp_module.h index a1c1efd3d..b55b489d3 100644 --- a/src/event/modules/ngx_iocp_module.h +++ b/src/event/modules/ngx_iocp_module.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_IOCP_MODULE_H_INCLUDED_ #define _NGX_IOCP_MODULE_H_INCLUDED_ diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c index a1d6f5907..f8cdcd8d7 100644 --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_kqueue_module.h b/src/event/modules/ngx_kqueue_module.h index ab1a12b9c..0ea98624d 100644 --- a/src/event/modules/ngx_kqueue_module.h +++ b/src/event/modules/ngx_kqueue_module.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_KQUEUE_MODULE_H_INCLUDED_ #define _NGX_KQUEUE_MODULE_H_INCLUDED_ diff --git a/src/event/modules/ngx_overlapped_module.c b/src/event/modules/ngx_overlapped_module.c deleted file mode 100644 index c3af39dce..000000000 --- a/src/event/modules/ngx_overlapped_module.c +++ /dev/null @@ -1,41 +0,0 @@ - - - event = WSACreateEvent(void); - WSAEventSelect(s, event, FD_ACCEPT); - - -int ngx_overlapped_process_events(ngx_log_t *log) -{ - if (acceptex) - n = SleepEx(timer, 1); - else - n = WSAWaitForMultipleEvents(nevents, events, 0, timer, 1); - - if (n == WSA_WAIT_TIMEOUT) - close some event; - - if (n == WSA_IO_COMPLETION) - again - - /* try it with AcceptEx() on NT to detect connected sockets */ - if (!acceptex) { - WSAEnumNetworkEvents( - sockets[n - WSA_WAIT_EVENT_0], - events[n - WSA_WAIT_EVENT_0], - net_events); - - if (net_events.lNetworkEvents & FD_ACCEPT) { - if (net_events.iErrorCode[FD_ACCEPT_BIT] != 0) - accept error - again - - ngx_event_accept(); OR post AcceptEx(); - } - } -} - -void CALLBACK overlapped_completion_procedure(DWORD error, DWORD nbytes, - LPWSAOVERLAPPED overlapped, DWORD flags) -{ - run event handler -} diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c index 7c23f5fb1..eefc3a928 100644 --- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c index 6a83e9c1b..995ae322e 100644 --- a/src/event/modules/ngx_rtsig_module.c +++ b/src/event/modules/ngx_rtsig_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c index 56b50cdf9..d441fbeeb 100644 --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ + * Copyright (C) 2002-2004 Igor Sysoev */ diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index a2e275b92..6328bf184 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h index 9e41fed86..b492a65fd 100644 --- a/src/event/ngx_event.h +++ b/src/event/ngx_event.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_H_INCLUDED_ #define _NGX_EVENT_H_INCLUDED_ diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c index 9ab04310c..9044c44ce 100644 --- a/src/event/ngx_event_accept.c +++ b/src/event/ngx_event_accept.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_acceptex.c b/src/event/ngx_event_acceptex.c index d6388994b..0cd74dee5 100644 --- a/src/event/ngx_event_acceptex.c +++ b/src/event/ngx_event_acceptex.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_aio_read.c b/src/event/ngx_event_aio_read.c deleted file mode 100644 index 4561cf4bf..000000000 --- a/src/event/ngx_event_aio_read.c +++ /dev/null @@ -1,113 +0,0 @@ - -#include <ngx_config.h> -#include <ngx_core.h> -#include <ngx_errno.h> -#include <ngx_log.h> -#include <ngx_recv.h> -#include <ngx_connection.h> -#include <ngx_event.h> - -#if (HAVE_KQUEUE) -#include <ngx_kqueue_module.h> -#endif - - -/* - The data is ready - 3 syscalls: - aio_read(), aio_error(), aio_return() - The data is not ready - 4 (kqueue) or 5 syscalls: - aio_read(), aio_error(), notifiction, - aio_error(), aio_return() - aio_cancel(), aio_error() -*/ - -ssize_t ngx_event_aio_read(ngx_connection_t *c, char *buf, size_t size) -{ - int rc, first, canceled; - ngx_event_t *ev; - - ev = c->read; - - canceled = 0; - - if (ev->timedout) { - ngx_set_socket_errno(NGX_ETIMEDOUT); - ngx_log_error(NGX_LOG_ERR, ev->log, 0, "aio_read() timed out"); - - rc = aio_cancel(c->fd, &ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, - "aio_cancel() failed"); - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_cancel: %d" _ rc); - - canceled = 1; - - ev->ready = 1; - } - - first = 0; - - if (!ev->ready) { - ngx_memzero(&ev->aiocb, sizeof(struct aiocb)); - - ev->aiocb.aio_fildes = c->fd; - ev->aiocb.aio_buf = buf; - ev->aiocb.aio_nbytes = size; - -#if (HAVE_KQUEUE) - ev->aiocb.aio_sigevent.sigev_notify_kqueue = kq; - ev->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; - ev->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev; -#endif - - if (aio_read(&ev->aiocb) == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, - "aio_read() failed"); - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_read: OK"); - - ev->active = 1; - first = 1; - } - - ev->ready = 0; - - rc = aio_error(&ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, "aio_error() failed"); - return NGX_ERROR; - } - - if (rc != 0) { - if (rc == NGX_EINPROGRESS) { - if (!first) { - ngx_log_error(NGX_LOG_CRIT, ev->log, rc, - "aio_read() still in progress"); - } - return NGX_AGAIN; - } - - if (rc == NGX_ECANCELED && canceled) { - return NGX_ERROR; - } - - ngx_log_error(NGX_LOG_CRIT, ev->log, rc, "aio_read() failed"); - return NGX_ERROR; - } - - rc = aio_return(&ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, "aio_return() failed"); - - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_read: %d" _ rc); - - return rc; -} diff --git a/src/event/ngx_event_aio_write.c b/src/event/ngx_event_aio_write.c deleted file mode 100644 index 72d35c412..000000000 --- a/src/event/ngx_event_aio_write.c +++ /dev/null @@ -1,116 +0,0 @@ - -#include <ngx_config.h> -#include <ngx_core.h> -#include <ngx_errno.h> -#include <ngx_log.h> -#include <ngx_recv.h> -#include <ngx_connection.h> -#include <ngx_event.h> - -#if (HAVE_KQUEUE) -#include <ngx_kqueue_module.h> -#endif - - -/* - The data is ready - 3 syscalls: - aio_write(), aio_error(), aio_return() - The data is not ready - 4 (kqueue) or 5 syscalls: - aio_write(), aio_error(), notifiction, - aio_error(), aio_return() - aio_cancel(), aio_error() -*/ - -ssize_t ngx_event_aio_write(ngx_connection_t *c, char *buf, size_t size) -{ - int rc, first, canceled; - ngx_event_t *ev; - - ev = c->write; - - canceled = 0; - -ngx_log_debug(ev->log, "aio: ev->ready: %d" _ ev->ready); -ngx_log_debug(ev->log, "aio: aiocb: %08x" _ &ev->aiocb); - - if (ev->timedout) { - ngx_set_socket_errno(NGX_ETIMEDOUT); - ngx_log_error(NGX_LOG_ERR, ev->log, 0, "aio_write() timed out"); - - rc = aio_cancel(c->fd, &ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, - "aio_cancel() failed"); - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_cancel: %d" _ rc); - - canceled = 1; - - ev->ready = 1; - } - - first = 0; - - if (!ev->ready) { - ngx_memzero(&ev->aiocb, sizeof(struct aiocb)); - - ev->aiocb.aio_fildes = c->fd; - ev->aiocb.aio_buf = buf; - ev->aiocb.aio_nbytes = size; - -#if (HAVE_KQUEUE) - ev->aiocb.aio_sigevent.sigev_notify_kqueue = kq; - ev->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; - ev->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev; -#endif - - if (aio_write(&ev->aiocb) == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, - "aio_write() failed"); - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_write: OK"); - - ev->active = 1; - first = 1; - } - - ev->ready = 0; - - rc = aio_error(&ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, "aio_error() failed"); - return NGX_ERROR; - } - - if (rc != 0) { - if (rc == NGX_EINPROGRESS) { - if (!first) { - ngx_log_error(NGX_LOG_CRIT, ev->log, rc, - "aio_write() still in progress"); - } - return NGX_AGAIN; - } - - if (rc == NGX_ECANCELED && canceled) { - return NGX_ERROR; - } - - ngx_log_error(NGX_LOG_CRIT, ev->log, rc, "aio_write() failed"); - return NGX_ERROR; - } - - rc = aio_return(&ev->aiocb); - if (rc == -1) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_errno, "aio_return() failed"); - - return NGX_ERROR; - } - - ngx_log_debug(ev->log, "aio_write: %d" _ rc); - - return rc; -} diff --git a/src/event/ngx_event_busy_lock.c b/src/event/ngx_event_busy_lock.c index a4db7f94b..e3dd41ae9 100644 --- a/src/event/ngx_event_busy_lock.c +++ b/src/event/ngx_event_busy_lock.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_busy_lock.h b/src/event/ngx_event_busy_lock.h index 3862c6f01..2f9907349 100644 --- a/src/event/ngx_event_busy_lock.h +++ b/src/event/ngx_event_busy_lock.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ #define _NGX_EVENT_BUSY_LOCK_H_INCLUDED_ diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c index f0fb691d0..ad2148538 100644 --- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_connect.h b/src/event/ngx_event_connect.h index 8a3e17fdf..5493b623b 100644 --- a/src/event/ngx_event_connect.h +++ b/src/event/ngx_event_connect.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_CONNECT_H_INCLUDED_ #define _NGX_EVENT_CONNECT_H_INCLUDED_ diff --git a/src/event/ngx_event_connectex.c b/src/event/ngx_event_connectex.c index ed1228384..7cb7c31f3 100644 --- a/src/event/ngx_event_connectex.c +++ b/src/event/ngx_event_connectex.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_mutex.c b/src/event/ngx_event_mutex.c index 4f83e4865..b77c389b9 100644 --- a/src/event/ngx_event_mutex.c +++ b/src/event/ngx_event_mutex.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 0116787a2..bbc185f7e 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h index 6c28ba5a7..5e3faa39f 100644 --- a/src/event/ngx_event_openssl.h +++ b/src/event/ngx_event_openssl.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_OPENSSL_H_INCLUDED_ #define _NGX_EVENT_OPENSSL_H_INCLUDED_ diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c index e324a230a..8e2094bc6 100644 --- a/src/event/ngx_event_pipe.c +++ b/src/event/ngx_event_pipe.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> @@ -656,8 +661,12 @@ ngx_inline static void ngx_event_pipe_remove_shadow_links(ngx_buf_t *buf) #if 0 b->type &= ~(NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY|NGX_HUNK_RECYCLED); #endif - b->temporary = 0; - b->recycled = 0; + b->in_file = 0; + b->temp_file = 0; + b->flush = 0; + b->zerocopy_busy = 0; + b->last_shadow = 0; + b->shadow = NULL; b = next; } @@ -669,9 +678,10 @@ ngx_inline static void ngx_event_pipe_remove_shadow_links(ngx_buf_t *buf) |NGX_HUNK_LAST_SHADOW); #endif - b->temporary = 0; - b->recycled = 0; - b->last_shadow = 0; + b->in_file = 0; + b->temp_file = 0; + b->flush = 0; + b->zerocopy_busy = 0; b->shadow = NULL; diff --git a/src/event/ngx_event_pipe.h b/src/event/ngx_event_pipe.h index e85fc6170..f6430f946 100644 --- a/src/event/ngx_event_pipe.h +++ b/src/event/ngx_event_pipe.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_PIPE_H_INCLUDED_ #define _NGX_EVENT_PIPE_H_INCLUDED_ diff --git a/src/event/ngx_event_posted.c b/src/event/ngx_event_posted.c index 835c73f74..31fa1fe1d 100644 --- a/src/event/ngx_event_posted.c +++ b/src/event/ngx_event_posted.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_posted.h b/src/event/ngx_event_posted.h index 5a3039357..055bec328 100644 --- a/src/event/ngx_event_posted.h +++ b/src/event/ngx_event_posted.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_POSTED_H_INCLUDED_ #define _NGX_EVENT_POSTED_H_INCLUDED_ diff --git a/src/event/ngx_event_recv.c b/src/event/ngx_event_recv.c deleted file mode 100644 index c083e8f61..000000000 --- a/src/event/ngx_event_recv.c +++ /dev/null @@ -1,147 +0,0 @@ - -#include <ngx_config.h> -#include <ngx_core.h> -#include <ngx_errno.h> -#include <ngx_log.h> -#include <ngx_recv.h> -#include <ngx_connection.h> - -ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size) -{ - ssize_t n; - ngx_err_t err; - ngx_event_t *ev; - - ev = c->read; - -/* DEBUG */ -#if (HAVE_KQUEUE) - if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { - ngx_log_debug(c->log, "ngx_event_recv: eof:%d, avail:%d, err:%d" _ - ev->eof _ ev->available _ ev->error); - } -#endif - -#if (USE_KQUEUE) - - if (ev->eof && ev->available == 0) { - - if (ev->error == 0) { - return 0; - } - - ngx_set_socket_errno(ev->error); - err = ev->error; - n = -1; - - } else { - n = ngx_recv(c->fd, buf, size, 0); - - if (n == -1) { - err = ngx_socket_errno; - } - } - - if (n == -1) { - ev->ready = 0; - - if (err == NGX_ECONNRESET && ev->ignore_econnreset) { - return 0; - } - - if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, c->log, err, "recv() returned EAGAIN"); - return NGX_AGAIN; - } - - ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); - return NGX_ERROR; - } - - ev->available -= n; - if (ev->available == 0) { - ev->ready = 0; - } - - return n; - -#elif (HAVE_KQUEUE) - - if ((ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) - && ev->eof && ev->available == 0) { - - if (ev->error == 0) { - return 0; - } - - ngx_set_socket_errno(ev->error); - err = ev->error; - n = -1; - - } else { - n = ngx_recv(c->fd, buf, size, 0); -ngx_log_debug(c->log, "ngx_event_recv: read:%d:%d" _ n _ size); - - if (n == -1) { - err = ngx_socket_errno; - } - } - - if (n == -1) { - ev->ready = 0; - - if (err == NGX_ECONNRESET && ev->ignore_econnreset) { - return 0; - } - - if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, c->log, err, "recv() returned EAGAIN"); - return NGX_AGAIN; - } - - ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); - return NGX_ERROR; - } - - if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { - ev->available -= n; - if (ev->available == 0) { - ev->ready = 0; - } - - } else if ((size_t) n < size) { - ev->ready = 0; - } - - return n; - -#else /* not kqueue */ - - n = ngx_recv(c->fd, buf, size, 0); - - if (n == -1) { - err = ngx_socket_errno; - - ev->ready = 0; - - if (err == NGX_ECONNRESET && ev->ignore_econnreset) { - return 0; - } - - if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, c->log, err, "recv() returned EAGAIN"); - return NGX_AGAIN; - } - - ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); - return NGX_ERROR; - } - - if ((size_t) n < size) { - ev->ready = 0; - } - - return n; - -#endif -} diff --git a/src/event/ngx_event_thread.c b/src/event/ngx_event_thread.c deleted file mode 100644 index 527b49cd0..000000000 --- a/src/event/ngx_event_thread.c +++ /dev/null @@ -1,129 +0,0 @@ - -volitile int ngx_last_posted_event; - - -typedef struct { - ngx_tid_t tid; - ngx_cv_t cv; -} ngx_thread_data_t; - -static ngx_thread_data_t *threead_data; - - - - - -{ - - err = ngx_thread_cond_wait(ngx_thread_data_cv, ngx_thread_data_mutex); - - tid = ngx_thread_self(); - - for (i = 0; i < thread_data_n; i++) { - if (thread_data[i].tid == tid) { - cv = thread_data[i].cv; - break; - } - } - - if (i == thread_data_n) { - error - return - } - - - for ( ;; ) { - - err = ngx_thread_cond_wait(cv, ngx_posted_events_mutex); - if (err) { - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_cond_wait_n " failed, thread is exiting"); - return; - } - - for ( ;; ) { - ev = NULL; - - for (i = ngx_last_posted_event; i > 0; i--) { - ev = ngx_posted_events[i]; - - if (ev == NULL) { - continue; - } - - err = ngx_thread_mutex_trylock(ev->mutex); - - if (err == 0) { - ngx_posted_events[i] = NULL; - - while (ngx_posted_events[ngx_last_posted_event] == NULL) { - ngx_last_posted_event--; - } - - break; - } - - if (err == NGX_EBUSY) { - ev = NULL; - continue; - } - - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_mutex_unlock_n " failed, - thread is exiting"); - - ngx_worker_thread_error(); - return; - } - - err = ngx_thread_mutex_unlock(ngx_posted_events_mutex); - if (err) { - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_mutex_unlock_n - " failed, thread exiting"); - return; - } - - if (ev == NULL) { - break; - } - - ngx_event_handle_event(ev); - - err = ngx_thread_mutex_unlock(ev->mutex); - if (err) { - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_mutex_unlock_n - " failed, thread exiting"); - - ngx_worker_thread_error(); - return; - } - - err = ngx_thread_mutex_lock(ngx_posted_events_mutex); - if (err) { - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_mutex_lock_n - " failed, thread exiting"); - return; - } - } - - if (restart) { - ngx_log_error(NGX_INFO, log, 0, "thread is exiting"); - return; - } - } -} - -ngx_worker_thread_error() -{ - ngx_err_t err; - - err = ngx_thread_mutex_unlock(ngx_posted_events_mutex); - if (err) { - ngx_log_error(NGX_ALERT, log, err, - ngx_thread_mutex_unlock_n - " failed, thread exiting"); - } -} diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c index 5b0c871b0..0fbf66e9c 100644 --- a/src/event/ngx_event_timer.c +++ b/src/event/ngx_event_timer.c @@ -1,4 +1,9 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h index 0ff640539..fb9bc2894 100644 --- a/src/event/ngx_event_timer.h +++ b/src/event/ngx_event_timer.h @@ -1,3 +1,9 @@ + +/* + * Copyright (C) 2002-2004 Igor Sysoev + */ + + #ifndef _NGX_EVENT_TIMER_H_INCLUDED_ #define _NGX_EVENT_TIMER_H_INCLUDED_ diff --git a/src/event/ngx_event_wsarecv.c b/src/event/ngx_event_wsarecv.c deleted file mode 100644 index b97f97da4..000000000 --- a/src/event/ngx_event_wsarecv.c +++ /dev/null @@ -1,97 +0,0 @@ - -#include <ngx_config.h> - -#include <ngx_core.h> -#include <ngx_errno.h> -#include <ngx_log.h> -#include <ngx_connection.h> -#include <ngx_event.h> - - -ssize_t ngx_event_wsarecv(ngx_connection_t *c, char *buf, size_t size) -{ - int rc; - u_int flags; - size_t bytes; - ngx_err_t err; - WSABUF wsabuf[1]; - ngx_event_t *ev; - LPWSAOVERLAPPED_COMPLETION_ROUTINE handler; - - ev = c->read; - -/* DEBUG */ bytes = 0; - - if (ev->timedout) { - ngx_set_socket_errno(NGX_ETIMEDOUT); - ngx_log_error(NGX_LOG_ERR, ev->log, 0, "WSARecv() timed out"); - - return NGX_ERROR; - } - - if (ev->ready) { - ev->ready = 0; - -#if (HAVE_IOCP) /* iocp */ - - if (ngx_event_flags & NGX_HAVE_IOCP_EVENT) { - if (ev->ovlp.error) { - ngx_log_error(NGX_LOG_ERR, c->log, ev->ovlp.error, - "WSARecv() failed"); - return NGX_ERROR; - } - - return ev->available; - } - -#endif - - if (WSAGetOverlappedResult(c->fd, (LPWSAOVERLAPPED) &ev->ovlp, - &bytes, 0, NULL) == 0) { - err = ngx_socket_errno; - ngx_log_error(NGX_LOG_CRIT, ev->log, err, - "WSARecv() or WSAGetOverlappedResult() failed"); - - return NGX_ERROR; - } - - return bytes; - } - - ngx_memzero(&ev->ovlp, sizeof(WSAOVERLAPPED)); - wsabuf[0].buf = buf; - wsabuf[0].len = size; - flags = 0; - -#if 0 - handler = ev->handler; -#else - handler = NULL; -#endif - - rc = WSARecv(c->fd, wsabuf, 1, &bytes, &flags, - (LPWSAOVERLAPPED) &ev->ovlp, handler); - - ngx_log_debug(ev->log, "WSARecv: %d:%d" _ rc _ bytes); - - if (rc == -1) { - err = ngx_socket_errno; - if (err == WSA_IO_PENDING) { - return NGX_AGAIN; - - } else { - ngx_log_error(NGX_LOG_CRIT, ev->log, err, "WSARecv() failed"); - return NGX_ERROR; - } - } - -#if (HAVE_IOCP) /* iocp */ - - if (ngx_event_flags & NGX_HAVE_IOCP_EVENT) { - return NGX_AGAIN; - } - -#endif - - return bytes; -} |
