5. 启动定时器 (timer_start) (工作中经常用到)
timer_start 函数接收定时器的过期时间和回调函数,并将定时器节点插入到定时器链表中。
int timer_start(timer_list_t *timer_list,
timer_node_t *timer_node,
UINT32 expire_time,
TIMER_FUNC timeout_routine,
void *arg1,
void *arg2,
void *arg3)
{
timer_node_t *pt_node = NULL;
struct list_head *prev = NULL, *l = NULL;
struct timespec time;
// 参数验证:如果传入的定时器列表或定时器节点为NULL,返回错误
if (timer_list == NULL || timer_node == NULL)
{
return ERROR;
}
// 获取当前时间
clock_gettime(CLOCK_MONOTONIC, &time);