简介
一般使用rte_timer.h来实现定时器,但是需要一组API接口来完成;如果想一个API就搞定呢?
可以使用rte_alarm.h中定义的rte_eal_alarm_set()函数,且回调函数只会被执行一次。
int rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb, void *cb_arg)
- us The time in microseconds before the callback is called
- cb The function to be called when the alarm expires
- cb_arg Pointer parameter to be passed to the callback function
示例
在回调函数中再次调用rte_eal_alarm_set(),实现每秒触发回调函数的定时器效果。
#include <rte_alarm.h>
static void
alarm_test(__rte_unused void *arg)
{
printf("xftest alarm \n");
rte_eal_alarm_set(1000*1000, alarm_test, NULL);
}
int
main(int argc, char **argv)
{
...
rte_eal_alarm_set(1000*1000, alarm_test, NULL);
...
}