diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2003-12-04 14:53:00 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2003-12-04 14:53:00 +0000 |
| commit | f5003d8a66790932cae5168a913ae234cd4ce709 (patch) | |
| tree | 9f252372fa7b1bb6673394aaecce911e10605593 /src/event/ngx_event_timer.h | |
| parent | 7adb8c0e8fa58c51dfaf2a563b2216e7d678435c (diff) | |
| download | nginx-f5003d8a66790932cae5168a913ae234cd4ce709.tar.gz nginx-f5003d8a66790932cae5168a913ae234cd4ce709.tar.bz2 | |
nginx-0.0.1-2003-12-04-17:53:00 import
Diffstat (limited to 'src/event/ngx_event_timer.h')
| -rw-r--r-- | src/event/ngx_event_timer.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h index 911667d14..ea8105ee3 100644 --- a/src/event/ngx_event_timer.h +++ b/src/event/ngx_event_timer.h @@ -7,15 +7,59 @@ #include <ngx_event.h> +/* + * 1 msec - 49 days + * 10 msec - 1 years 4 months + * 50 msec - 6 years 10 months + * 100 msec - 13 years 8 months + */ + +#define NGX_TIMER_RESOLUTION 50 + + +int ngx_event_timer_init(ngx_cycle_t *cycle); +void ngx_event_timer_done(ngx_cycle_t *cycle); +int ngx_event_find_timer(void); +void ngx_event_expire_timers(ngx_msec_t timer); + +#if 0 int ngx_event_timer_init(ngx_cycle_t *cycle); void ngx_event_timer_done(ngx_cycle_t *cycle); void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer); int ngx_event_find_timer(void); void ngx_event_set_timer_delta(ngx_msec_t timer); void ngx_event_expire_timers(ngx_msec_t timer); +#endif + + +extern ngx_rbtree_t *ngx_event_timer_rbtree; + + +ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) +{ + ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->rbtree); + + ev->timer_set = 0; +} + + +ngx_inline static void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) +{ + if (ev->timer_set) { + ngx_del_timer(ev); + } + + ev->rbtree.key = (ngx_int_t) + (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION; + ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->rbtree); + + ev->timer_set = 1; +} +#if 0 + ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) { #if (NGX_DEBUG_EVENT) @@ -45,5 +89,7 @@ ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) ev->timer_set = 0; } +#endif + #endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */ |
