The timer management facility mimics the timeout and un-timeout functionality of the UNIX kernel. A thread maintains a list of timer objects sorted by time. The thread invokes the callback function at the interval that the timer specifies.
The stack initializes the timer layer during stack initialization. Initializing the timer layer starts the timer thread.
The sip_timeout() function takes the following arguments:
The callback function to use
The time interval to wait before invoking the callback function
The argument to pass to the callback function
The return value of the timeout function is a timeout identifier. The tack can cancel a timeout by passing the timeout ID of the timeout to cancel to the sip_untimeout() function