Mercurial > hg > nginx-quic
changeset 120:b776ad95d96d
nginx-0.0.1-2003-07-21-20:24:25 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 21 Jul 2003 16:24:25 +0000 |
parents | cd54bcbaf3b5 |
children | b3655b21375a |
files | src/event/modules/ngx_select_module.c src/event/ngx_event_connect.c src/event/ngx_event_connect.h |
diffstat | 3 files changed, 33 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -319,6 +319,19 @@ static int ngx_select_process_events(ngx if (timer) { #if (HAVE_SELECT_CHANGE_TIMEOUT) delta = timer - (tv.tv_sec * 1000 + tv.tv_usec / 1000); + +#if 0 + /* + * update the cached time if the sum of the last deltas + * is more than 0.5 seconds + */ + deltas += delta; + if (deltas > 500000) { + ngx_cached_time = ngx_real_time(); + deltas = 0; + } +#endif + #else delta = ngx_msec() - delta; #endif
--- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -2,7 +2,7 @@ #include <ngx_event_connect.h> -int ngx_event_connect_peer(ngx_connect_peer_t *cp) +int ngx_event_connect_peer(ngx_peer_connecttion_t *pc) { time_t now; @@ -10,21 +10,21 @@ int ngx_event_connect_peer(ngx_connect_p now = ngx_time(); - if (cp->peers->number > 1) { + if (pc->peers->number > 1) { /* there are several peers */ - if (cp->tries == cp->peers->number) { + if (pc->tries == pc->peers->number) { /* it's a first try - get a current peer */ /* Here is the race condition when the peers are shared between the threads or the processes but it should not be serious */ - cp->cur_peer = cp->peers->current++; + pc->cur_peer = pc->peers->current++; if (cp->peers->current >= cp->peers->number) { - cp->peers->current = 0; + pc->peers->current = 0; } /* the end of the race condition */ @@ -32,39 +32,39 @@ int ngx_event_connect_peer(ngx_connect_p #if (NGX_MULTITHREADED || NGX_MULTIPROCESSED) /* eliminate the sequences of the race condition */ - if (cp->cur_peer >= cp->peers->number) { - cp->cur_peer = 0; + if (pc->cur_peer >= pc->peers->number) { + pc->cur_peer = 0; } #endif } - if (cp->peers->max_fails > 0) { + if (pc->peers->max_fails > 0) { /* the peers support a fault tolerance */ for ( ;; ) { - peer = &cp->peers->peers[cp->cur_peer]; + peer = &pc->peers->peers[pc->cur_peer]; /* Here is the race condition when the peers are shared between the threads or the processes but it should not be serious */ - if (peer->fails <= cp->peers->max_fails - || (now - peer->accessed > cp->peers->fail_timeout)) + if (peer->fails <= pc->peers->max_fails + || (now - peer->accessed > pc->peers->fail_timeout)) { break; } /* the end of the race condition */ - cp->cur_peer++; + pc->cur_peer++; - if (cp->cur_peer >= cp->peers->number) { - cp->cur_peer = 0; + if (pc->cur_peer >= pc->peers->number) { + pc->cur_peer = 0; } - cp->tries--; + pc->tries--; - if (cp->tries == 0) { + if (pc->tries == 0) { return NGX_ERROR; } }
--- a/src/event/ngx_event_connect.h +++ b/src/event/ngx_event_connect.h @@ -25,7 +25,7 @@ typedef struct { int fail_timeout; /* ngx_mutex_t *mutex; */ - /* ngx_connection_t *cached; */ + ngx_connection_t *cached; ngx_peer_t peers[1]; } ngx_peers_t; @@ -36,8 +36,10 @@ typedef struct { int cur_peer; int tries; + ngx_connection_t *connection; + unsigned cached:1; -} ngx_connect_peer_t; +} ngx_peer_connection_t; #endif /* _NGX_EVENT_CONNECT_H_INCLUDED_ */