blob: 7a6c52cb204d7db63c7632d7b47743294774adbc [file] [log] [blame]
Igor Sysoevfcce8d52003-01-23 18:47:54 +00001#ifndef _NGX_EVENT_TIMER_H_INCLUDED_
2#define _NGX_EVENT_TIMER_H_INCLUDED_
3
4
5#include <ngx_config.h>
Igor Sysoev239baac2003-06-11 15:28:34 +00006#include <ngx_core.h>
Igor Sysoevfcce8d52003-01-23 18:47:54 +00007#include <ngx_event.h>
8
9
Igor Sysoev340b03b2003-07-04 15:10:33 +000010int ngx_event_timer_init(ngx_cycle_t *cycle);
11void ngx_event_timer_done(ngx_cycle_t *cycle);
Igor Sysoevfcce8d52003-01-23 18:47:54 +000012void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer);
Igor Sysoeva9830112003-05-19 16:39:14 +000013int ngx_event_find_timer(void);
Igor Sysoev9b25d692003-01-26 21:08:14 +000014void ngx_event_expire_timers(ngx_msec_t timer);
15
Igor Sysoevfcce8d52003-01-23 18:47:54 +000016
Igor Sysoevfcce8d52003-01-23 18:47:54 +000017
18ngx_inline static void ngx_event_del_timer(ngx_event_t *ev)
19{
20#if (NGX_DEBUG_EVENT)
Igor Sysoev239baac2003-06-11 15:28:34 +000021 ngx_connection_t *c = ev->data;
22 ngx_log_debug(ev->log, "del timer: %d" _ c->fd);
Igor Sysoevfcce8d52003-01-23 18:47:54 +000023#endif
24
Igor Sysoev6ddfbf02003-05-15 15:42:53 +000025 if (!ev->timer_next || !ev->timer_prev) {
26 ngx_log_error(NGX_LOG_ALERT, ev->log, 0, "timer already deleted");
27 return;
28 }
29
Igor Sysoevfcce8d52003-01-23 18:47:54 +000030 if (ev->timer_prev) {
31 ev->timer_prev->timer_next = ev->timer_next;
32 }
33
34 if (ev->timer_next) {
35 ev->timer_next->timer_delta += ev->timer_delta;
36 ev->timer_next->timer_prev = ev->timer_prev;
37 ev->timer_next = NULL;
38 }
39
40 if (ev->timer_prev) {
41 ev->timer_prev = NULL;
42 }
43}
44
45
Igor Sysoev73009772003-02-06 17:21:13 +000046#endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */