summaryrefslogtreecommitdiffhomepage
path: root/src/event
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-06-16 15:32:11 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-06-16 15:32:11 +0000
commit2f65722941903cfb5b4819bbf32b61ed1d330749 (patch)
tree77fb2186a9afef9acdbc77e60e43a82fc4dae122 /src/event
parentd09f7a1e9aa5816493e2fef93074383d95140c13 (diff)
downloadnginx-2f65722941903cfb5b4819bbf32b61ed1d330749.tar.gz
nginx-2f65722941903cfb5b4819bbf32b61ed1d330749.tar.bz2
nginx-0.0.7-2004-06-16-19:32:11 import
Diffstat (limited to 'src/event')
-rw-r--r--src/event/modules/ngx_kqueue_module.c18
-rw-r--r--src/event/modules/ngx_poll_module.c60
-rw-r--r--src/event/modules/ngx_select_module.c16
-rw-r--r--src/event/ngx_event.c16
-rw-r--r--src/event/ngx_event.h29
5 files changed, 60 insertions, 79 deletions
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 71e69183b..4a844e910 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -16,12 +16,12 @@ typedef struct {
} ngx_kqueue_conf_t;
-static int ngx_kqueue_init(ngx_cycle_t *cycle);
+static ngx_int_t ngx_kqueue_init(ngx_cycle_t *cycle);
static void ngx_kqueue_done(ngx_cycle_t *cycle);
-static int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags);
-static int ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags);
-static int ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags);
-static int ngx_kqueue_process_events(ngx_cycle_t *cycle);
+static ngx_int_t ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags);
+static ngx_int_t ngx_kqueue_process_events(ngx_cycle_t *cycle);
static ngx_inline void ngx_kqueue_dump_event(ngx_log_t *log,
struct kevent *kev);
@@ -87,7 +87,7 @@ ngx_module_t ngx_kqueue_module = {
-static int ngx_kqueue_init(ngx_cycle_t *cycle)
+static ngx_int_t ngx_kqueue_init(ngx_cycle_t *cycle)
{
struct timespec ts;
ngx_kqueue_conf_t *kcf;
@@ -184,7 +184,7 @@ static void ngx_kqueue_done(ngx_cycle_t *cycle)
}
-static int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_event_t *e;
ngx_connection_t *c;
@@ -229,7 +229,7 @@ static int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
}
-static int ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_event_t *e;
@@ -276,7 +276,7 @@ static int ngx_kqueue_del_event(ngx_event_t *ev, int event, u_int flags)
}
-static int ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags)
+static ngx_int_t ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags)
{
struct timespec ts;
ngx_connection_t *c;
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index b40499d9d..64f7cec74 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -9,11 +9,11 @@
#include <ngx_event.h>
-static int ngx_poll_init(ngx_cycle_t *cycle);
+static ngx_int_t ngx_poll_init(ngx_cycle_t *cycle);
static void ngx_poll_done(ngx_cycle_t *cycle);
-static int ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags);
-static int ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags);
-int ngx_poll_process_events(ngx_cycle_t *cycle);
+static ngx_int_t ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_poll_process_events(ngx_cycle_t *cycle);
static struct pollfd *event_list;
@@ -58,7 +58,7 @@ ngx_module_t ngx_poll_module = {
-static int ngx_poll_init(ngx_cycle_t *cycle)
+static ngx_int_t ngx_poll_init(ngx_cycle_t *cycle)
{
struct pollfd *list;
@@ -118,7 +118,7 @@ static void ngx_poll_done(ngx_cycle_t *cycle)
}
-static int ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_event_t *e;
ngx_connection_t *c;
@@ -171,7 +171,7 @@ static int ngx_poll_add_event(ngx_event_t *ev, int event, u_int flags)
}
-static int ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_uint_t i;
ngx_cycle_t **cycle;
@@ -259,7 +259,7 @@ static int ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags)
}
-int ngx_poll_process_events(ngx_cycle_t *cycle)
+static ngx_int_t ngx_poll_process_events(ngx_cycle_t *cycle)
{
int ready;
ngx_int_t i, nready;
@@ -272,33 +272,27 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
ngx_connection_t *c;
struct timeval tv;
- if (ngx_event_flags & NGX_OVERFLOW_EVENT) {
- timer = 0;
- expire = 0;
-
- } else {
- for ( ;; ) {
- timer = ngx_event_find_timer();
+ for ( ;; ) {
+ timer = ngx_event_find_timer();
- if (timer != 0) {
- break;
- }
+ if (timer != 0) {
+ break;
+ }
- ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
- "poll expired timer");
+ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+ "poll expired timer");
- ngx_event_expire_timers((ngx_msec_t)
- (ngx_elapsed_msec - ngx_old_elapsed_msec));
- }
+ ngx_event_expire_timers((ngx_msec_t)
+ (ngx_elapsed_msec - ngx_old_elapsed_msec));
+ }
- /* NGX_TIMER_INFINITE == INFTIM */
+ /* NGX_TIMER_INFINITE == INFTIM */
- if (timer == NGX_TIMER_INFINITE) {
- expire = 0;
+ if (timer == NGX_TIMER_INFINITE) {
+ expire = 0;
- } else {
- expire = 1;
- }
+ } else {
+ expire = 1;
}
ngx_old_elapsed_msec = ngx_elapsed_msec;
@@ -372,14 +366,6 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
}
}
- if ((ngx_event_flags & NGX_OVERFLOW_EVENT) && timer == 0 && ready == 0) {
-
- /* the overflowed rt signals queue has been drained */
-
- ngx_accept_mutex_unlock();
- return NGX_OK;
- }
-
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
ngx_accept_mutex_unlock();
return NGX_ERROR;
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 93b3cf3e7..4d50427a5 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -10,11 +10,11 @@
-static int ngx_select_init(ngx_cycle_t *cycle);
+static ngx_int_t ngx_select_init(ngx_cycle_t *cycle);
static void ngx_select_done(ngx_cycle_t *cycle);
-static int ngx_select_add_event(ngx_event_t *ev, int event, u_int flags);
-static int ngx_select_del_event(ngx_event_t *ev, int event, u_int flags);
-static int ngx_select_process_events(ngx_cycle_t *cycle);
+static ngx_int_t ngx_select_add_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_select_del_event(ngx_event_t *ev, int event, u_int flags);
+static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle);
static char *ngx_select_init_conf(ngx_cycle_t *cycle, void *conf);
@@ -72,7 +72,7 @@ ngx_module_t ngx_select_module = {
};
-static int ngx_select_init(ngx_cycle_t *cycle)
+static ngx_int_t ngx_select_init(ngx_cycle_t *cycle)
{
ngx_event_t **index;
@@ -135,7 +135,7 @@ static void ngx_select_done(ngx_cycle_t *cycle)
}
-static int ngx_select_add_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_select_add_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_connection_t *c;
@@ -196,7 +196,7 @@ static int ngx_select_add_event(ngx_event_t *ev, int event, u_int flags)
}
-static int ngx_select_del_event(ngx_event_t *ev, int event, u_int flags)
+static ngx_int_t ngx_select_del_event(ngx_event_t *ev, int event, u_int flags)
{
ngx_connection_t *c;
@@ -249,7 +249,7 @@ static int ngx_select_del_event(ngx_event_t *ev, int event, u_int flags)
}
-static int ngx_select_process_events(ngx_cycle_t *cycle)
+static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle)
{
int ready, nready;
ngx_uint_t i, found, lock, expire;
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index d669182a0..a74430a50 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -504,7 +504,7 @@ static char *ngx_event_use(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
ngx_event_conf_t *old_ecf;
ngx_event_module_t *module;
- if (ecf->use != NGX_CONF_UNSET) {
+ if (ecf->use != NGX_CONF_UNSET_UINT) {
return "is duplicate" ;
}
@@ -633,19 +633,19 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
#if (HAVE_KQUEUE)
ngx_conf_init_unsigned_value(ecf->connections, DEFAULT_CONNECTIONS);
- ngx_conf_init_value(ecf->use, ngx_kqueue_module.ctx_index);
+ ngx_conf_init_unsigned_value(ecf->use, ngx_kqueue_module.ctx_index);
ngx_conf_init_ptr_value(ecf->name, ngx_kqueue_module_ctx.name->data);
#elif (HAVE_DEVPOLL)
ngx_conf_init_unsigned_value(ecf->connections, DEFAULT_CONNECTIONS);
- ngx_conf_init_value(ecf->use, ngx_devpoll_module.ctx_index);
+ ngx_conf_init_unsigned_value(ecf->use, ngx_devpoll_module.ctx_index);
ngx_conf_init_ptr_value(ecf->name, ngx_devpoll_module_ctx.name->data);
#elif (HAVE_EPOLL)
ngx_conf_init_unsigned_value(ecf->connections, DEFAULT_CONNECTIONS);
- ngx_conf_init_value(ecf->use, ngx_epoll_module.ctx_index);
+ ngx_conf_init_unsigned_value(ecf->use, ngx_epoll_module.ctx_index);
ngx_conf_init_ptr_value(ecf->name, ngx_epoll_module_ctx.name->data);
#elif (HAVE_RTSIG)
@@ -653,7 +653,7 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
ngx_core_conf_t *ccf;
ngx_conf_init_unsigned_value(ecf->connections, DEFAULT_CONNECTIONS);
- ngx_conf_init_value(ecf->use, ngx_rtsig_module.ctx_index);
+ ngx_conf_init_unsigned_value(ecf->use, ngx_rtsig_module.ctx_index);
ngx_conf_init_ptr_value(ecf->name, ngx_rtsig_module_ctx.name->data);
#elif (HAVE_SELECT)
@@ -665,7 +665,7 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
FD_SETSIZE < DEFAULT_CONNECTIONS ? FD_SETSIZE : DEFAULT_CONNECTIONS);
#endif
- ngx_conf_init_value(ecf->use, ngx_select_module.ctx_index);
+ ngx_conf_init_unsigned_value(ecf->use, ngx_select_module.ctx_index);
ngx_conf_init_ptr_value(ecf->name, ngx_select_module_ctx.name->data);
#else
@@ -694,9 +694,9 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
return NGX_CONF_ERROR;
}
- ngx_conf_init_value(ecf->connections, DEFAULT_CONNECTIONS);
+ ngx_conf_unsigned_init_value(ecf->connections, DEFAULT_CONNECTIONS);
- ngx_conf_init_value(ecf->use, m);
+ ngx_conf_unsigned_init_value(ecf->use, m);
ngx_conf_init_ptr_value(ecf->name, module->name->data);
#endif
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 986ae0e58..0c2e5d8fa 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -177,18 +177,18 @@ struct ngx_event_s {
typedef struct {
- int (*add)(ngx_event_t *ev, int event, u_int flags);
- int (*del)(ngx_event_t *ev, int event, u_int flags);
+ ngx_int_t (*add)(ngx_event_t *ev, int event, u_int flags);
+ ngx_int_t (*del)(ngx_event_t *ev, int event, u_int flags);
- int (*enable)(ngx_event_t *ev, int event, u_int flags);
- int (*disable)(ngx_event_t *ev, int event, u_int flags);
+ ngx_int_t (*enable)(ngx_event_t *ev, int event, u_int flags);
+ ngx_int_t (*disable)(ngx_event_t *ev, int event, u_int flags);
- int (*add_conn)(ngx_connection_t *c);
- int (*del_conn)(ngx_connection_t *c, u_int flags);
+ ngx_int_t (*add_conn)(ngx_connection_t *c);
+ ngx_int_t (*del_conn)(ngx_connection_t *c, u_int flags);
- int (*process)(ngx_cycle_t *cycle);
- int (*init)(ngx_cycle_t *cycle);
- void (*done)(ngx_cycle_t *cycle);
+ ngx_int_t (*process)(ngx_cycle_t *cycle);
+ ngx_int_t (*init)(ngx_cycle_t *cycle);
+ void (*done)(ngx_cycle_t *cycle);
} ngx_event_actions_t;
@@ -249,21 +249,16 @@ extern ngx_event_actions_t ngx_event_actions;
#define NGX_USE_RTSIG_EVENT 0x00000100
/*
- * The alternative event method after the rt signals queue overflow.
- */
-#define NGX_OVERFLOW_EVENT 0x00000200
-
-/*
* No need to add or delete the event filters - overlapped, aio_read,
* aioread, io_submit.
*/
-#define NGX_USE_AIO_EVENT 0x00000400
+#define NGX_USE_AIO_EVENT 0x00000200
/*
* Need to add socket or handle only once - i/o completion port.
* It also requires HAVE_AIO and NGX_USE_AIO_EVENT to be set.
*/
-#define NGX_USE_IOCP_EVENT 0x00000800
+#define NGX_USE_IOCP_EVENT 0x00000400
@@ -390,7 +385,7 @@ extern ngx_event_actions_t ngx_event_actions;
typedef struct {
ngx_uint_t connections;
- ngx_int_t use;
+ ngx_uint_t use;
ngx_flag_t multi_accept;
ngx_flag_t accept_mutex;