Event Timers and RB trees

agentzh agentzh at gmail.com
Mon Jan 4 05:18:00 MSK 2010

On Sat, Jan 2, 2010 at 12:29 AM, test guy <testguy103 at gmail.com> wrote:
> I have been looking through the nginx source code and cannot figure out how event timers are used (and their purpose). Can somebody shed some light on this for me please?

Timers are usually used to implement the timeout mechanism for
non-blocking I/O operations in nginx. But it is also used to implement
non-blocking sleep in the ngx_chunkin module. Logically, a timer is
usually associated with an ngx_event_t object, and at any one time,
only one timer is allowed for one ngx_event_t object.

Two functions are often used to handle timers, ngx_add_timer and ngx_del_timer.

> Also, I noticed a red/black tree is used somehow with event timers, and I also do not understand this.

It's used to store the timers themselves. It's the implementation
details already, I think ;)


More information about the nginx-devel mailing list