Mercurial > hg > nginx-quic
diff src/event/ngx_event_accept.c @ 561:e48ebafc6939 release-0.3.2
nginx-0.3.2-RELEASE import
*) Feature: the Sun Studio 10 C compiler support.
*) Feature: the "proxy_upstream_max_fails",
"proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and
"fastcgi_upstream_fail_timeout" directives.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 12 Oct 2005 13:50:36 +0000 |
parents | 511a89da35ad |
children | 58475592100c |
line wrap: on
line diff
--- a/src/event/ngx_event_accept.c +++ b/src/event/ngx_event_accept.c @@ -22,7 +22,6 @@ ngx_event_accept(ngx_event_t *ev) socklen_t sl; ngx_err_t err; ngx_log_t *log; - ngx_uint_t instance; ngx_socket_t s; ngx_event_t *rev, *wev; ngx_listening_t *ls; @@ -76,8 +75,8 @@ ngx_event_accept(ngx_event_t *ev) } #if (NGX_STAT_STUB) - ngx_atomic_inc(ngx_stat_accepted); - ngx_atomic_inc(ngx_stat_active); + ngx_atomic_fetch_add(ngx_stat_accepted, 1); + ngx_atomic_fetch_add(ngx_stat_active, 1); #endif ngx_accept_disabled = NGX_ACCEPT_THRESHOLD @@ -94,16 +93,6 @@ ngx_event_accept(ngx_event_t *ev) return; } - rev = c->read; - wev = c->write; - - ngx_memzero(c, sizeof(ngx_connection_t)); - - c->read = rev; - c->write = wev; - c->fd = s; - c->log = ev->log; - c->pool = ngx_create_pool(ls->pool_size, ev->log); if (c->pool == NULL) { ngx_close_accepted_connection(c); @@ -164,21 +153,9 @@ ngx_event_accept(ngx_event_t *ev) c->ctx = lc->ctx; c->servers = lc->servers; - instance = rev->instance; - - ngx_memzero(rev, sizeof(ngx_event_t)); - ngx_memzero(wev, sizeof(ngx_event_t)); - - rev->instance = !instance; - wev->instance = !instance; + rev = c->read; + wev = c->write; - rev->index = NGX_INVALID_INDEX; - wev->index = NGX_INVALID_INDEX; - - rev->data = c; - wev->data = c; - - wev->write = 1; wev->ready = 1; if (ngx_event_flags & (NGX_USE_AIO_EVENT|NGX_USE_RTSIG_EVENT)) { @@ -197,18 +174,18 @@ ngx_event_accept(ngx_event_t *ev) wev->log = log; /* - * TODO: MT: - atomic increment (x86: lock xadd) + * TODO: MT: - ngx_atomic_fetch_add() * or protection by critical section or light mutex * * TODO: MP: - allocated in a shared memory - * - atomic increment (x86: lock xadd) + * - ngx_atomic_fetch_add() * or protection by critical section or light mutex */ - c->number = ngx_atomic_inc(ngx_connection_counter); + c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1); #if (NGX_STAT_STUB) - ngx_atomic_inc(ngx_stat_handled); + ngx_atomic_fetch_add(ngx_stat_handled, 1); #endif #if (NGX_THREADS) @@ -391,7 +368,7 @@ ngx_close_accepted_connection(ngx_connec } #if (NGX_STAT_STUB) - ngx_atomic_dec(ngx_stat_active); + ngx_atomic_fetch_add(ngx_stat_active, -1); #endif }