#if !defined(_DELAY_H_) #define _DELAY_H_ 1 #include #include #include #include #include "ordq.h" typedef int (*delay_task_entry_fn_t)(void*); typedef int (*task_run_fn_t)(delay_task_entry_fn_t, void*); typedef struct { time_t nextrun; int run_period; int runcount; delay_task_entry_fn_t entry; void* args; } delay_task_t; typedef struct { pthread_t worker; int running; int precision; task_run_fn_t runner_fn; timer_t timerid; ordq_t tasks; } delaymgr_t; extern int delaymgr_init(delaymgr_t*, int, task_run_fn_t); extern void delaymgr_stop(delaymgr_t*); extern void delaymgr_fini(delaymgr_t*); extern int delaymgr_start(delaymgr_t*); extern int delay_task(delaymgr_t*, int, int, delay_task_entry_fn_t, void*); #endif