|
OpenVPN
|


Go to the source code of this file.
Data Structures | |
| struct | schedule_entry |
| struct | schedule |
Macros | |
| #define | IN_TREE(e) ((e)->pri) |
Functions | |
| struct schedule * | schedule_init (void) |
| void | schedule_free (struct schedule *s) |
| void | schedule_remove_entry (struct schedule *s, struct schedule_entry *e) |
| struct schedule_entry * | schedule_find_least (struct schedule_entry *e) |
| void | schedule_add_modify (struct schedule *s, struct schedule_entry *e) |
| void | schedule_remove_node (struct schedule *s, struct schedule_entry *e) |
| static void | schedule_add_entry (struct schedule *s, struct schedule_entry *e, const struct timeval *tv, unsigned int sigma) |
| Add a struct schedule_entry to the scheduler btree or update an existing entry with a new wakeup time. | |
| static struct schedule_entry * | schedule_get_earliest_wakeup (struct schedule *s, struct timeval *wakeup) |
| #define IN_TREE | ( | e | ) | ((e)->pri) |
Definition at line 74 of file schedule.h.
|
inlinestatic |
Add a struct schedule_entry to the scheduler btree or update an existing entry with a new wakeup time.
sigma is only used when the entry is already present in the schedule. If the originally scheduled time and the new time are within sigma microseconds of each other then the entry is not rescheduled and will occur at the original time. When adding a new entry sigma will be ignored.
| s | scheduler tree |
| e | entry to add to the schedule |
| tv | wakeup time for the entry |
| sigma | window size for the event in microseconds |
e as opaque data. Only the scheduler functions should change the object. The caller is expected to manage the memory for the object and must only free it once it has been removed from the schedule. Definition at line 106 of file schedule.h.
References schedule::earliest_wakeup, IN_TREE, schedule_add_modify(), schedule_entry::tv, and tv_within_sigma().
Referenced by multi_push_restart_schedule_exit(), and multi_schedule_context_wakeup().
| void schedule_add_modify | ( | struct schedule * | s, |
| struct schedule_entry * | e | ||
| ) |
Definition at line 339 of file schedule.c.
References check_debug_level(), D_SCHEDULER, IN_TREE, schedule_entry::parent, schedule_entry::pri, schedule::root, schedule_insert(), schedule_remove_node(), schedule_rotate_up(), and schedule_set_pri().
Referenced by schedule_add_entry().
| struct schedule_entry * schedule_find_least | ( | struct schedule_entry * | e | ) |
Definition at line 378 of file schedule.c.
References check_debug_level(), D_SCHEDULER, and schedule_entry::lt.
Referenced by schedule_get_earliest_wakeup().
| void schedule_free | ( | struct schedule * | s | ) |
Definition at line 415 of file schedule.c.
Referenced by multi_uninit().
|
inlinestatic |
Definition at line 124 of file schedule.h.
References schedule::earliest_wakeup, schedule::root, schedule_find_least(), and schedule_entry::tv.
Referenced by multi_get_timeout_instance().
| struct schedule * schedule_init | ( | void | ) |
| void schedule_remove_entry | ( | struct schedule * | s, |
| struct schedule_entry * | e | ||
| ) |
Definition at line 421 of file schedule.c.
References schedule::earliest_wakeup, and schedule_remove_node().
Referenced by multi_close_instance(), and multi_process_timeout().
| void schedule_remove_node | ( | struct schedule * | s, |
| struct schedule_entry * | e | ||
| ) |
Definition at line 243 of file schedule.c.
References schedule_entry::gt, schedule_entry::lt, schedule_entry::pri, schedule_detach_parent(), and schedule_rotate_up().
Referenced by schedule_add_modify(), and schedule_remove_entry().