sched: add function to remove all timers and descriptors
This allows a helper process to be started in an *_Initialise() call and use the scheduler (unlike the privops helper, which has its own loop).
This commit is contained in:
parent
24538fe3e9
commit
26a1ed8bc3
2 changed files with 17 additions and 0 deletions
14
sched.c
14
sched.c
|
@ -472,6 +472,20 @@ SCH_RemoveTimeout(SCH_TimeoutID id)
|
|||
assert(0);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
void
|
||||
SCH_Reset(void)
|
||||
{
|
||||
while (n_timer_queue_entries > 0)
|
||||
SCH_RemoveTimeout(timer_queue.next->id);
|
||||
|
||||
while (one_highest_fd > 0) {
|
||||
close(one_highest_fd - 1);
|
||||
SCH_RemoveFileHandler(one_highest_fd - 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
/* Try to dispatch any timeouts that have already gone by, and
|
||||
keep going until all are done. (The earlier ones may take so
|
||||
|
|
3
sched.h
3
sched.h
|
@ -82,6 +82,9 @@ extern SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation,
|
|||
/* The next one probably ought to return a status code */
|
||||
extern void SCH_RemoveTimeout(SCH_TimeoutID);
|
||||
|
||||
/* Remove all timeouts and close all file descriptors */
|
||||
extern void SCH_Reset(void);
|
||||
|
||||
extern void SCH_MainLoop(void);
|
||||
|
||||
extern void SCH_QuitProgram(void);
|
||||
|
|
Loading…
Reference in a new issue