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);
|
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
|
/* Try to dispatch any timeouts that have already gone by, and
|
||||||
keep going until all are done. (The earlier ones may take so
|
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 */
|
/* The next one probably ought to return a status code */
|
||||||
extern void SCH_RemoveTimeout(SCH_TimeoutID);
|
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_MainLoop(void);
|
||||||
|
|
||||||
extern void SCH_QuitProgram(void);
|
extern void SCH_QuitProgram(void);
|
||||||
|
|
Loading…
Reference in a new issue