OpenVPN
Functions
schedule.c File Reference
#include "syshead.h"
#include "buffer.h"
#include "misc.h"
#include "crypto.h"
#include "schedule.h"
#include "memdbg.h"
Include dependency graph for schedule.c:

Go to the source code of this file.

Functions

static void schedule_set_pri (struct schedule_entry *e)
 
int schedule_entry_compare (const struct schedule_entry *e1, const struct schedule_entry *e2)
 This method compares two schedule entries and return which one is earlier,later or equal.
 
static void schedule_detach_parent (struct schedule *s, struct schedule_entry *e)
 
static void schedule_rotate_up (struct schedule *s, struct schedule_entry *e)
 
void schedule_remove_node (struct schedule *s, struct schedule_entry *e)
 
static void schedule_insert (struct schedule *s, struct schedule_entry *e)
 
void schedule_add_modify (struct schedule *s, struct schedule_entry *e)
 
struct schedule_entryschedule_find_least (struct schedule_entry *e)
 
struct scheduleschedule_init (void)
 
void schedule_free (struct schedule *s)
 
void schedule_remove_entry (struct schedule *s, struct schedule_entry *e)
 

Function Documentation

◆ schedule_add_modify()

void schedule_add_modify ( struct schedule s,
struct schedule_entry e 
)

◆ schedule_detach_parent()

static void schedule_detach_parent ( struct schedule s,
struct schedule_entry e 
)
inlinestatic

◆ schedule_entry_compare()

int schedule_entry_compare ( const struct schedule_entry e1,
const struct schedule_entry e2 
)

This method compares two schedule entries and return which one is earlier,later or equal.

A key is simply a struct timeval containing the absolute time for an event. The unique treap priority (pri) is used to ensure that keys do not collide.

Definition at line 65 of file schedule.c.

References schedule_entry::pri, and schedule_entry::tv.

Referenced by schedule_debug_entry(), and schedule_insert().

◆ schedule_find_least()

struct schedule_entry * schedule_find_least ( struct schedule_entry e)

◆ schedule_free()

void schedule_free ( struct schedule s)

Definition at line 382 of file schedule.c.

Referenced by multi_uninit(), and schedule_test().

◆ schedule_init()

struct schedule * schedule_init ( void  )

Definition at line 373 of file schedule.c.

References ALLOC_OBJ_CLEAR.

Referenced by multi_init(), and schedule_test().

◆ schedule_insert()

static void schedule_insert ( struct schedule s,
struct schedule_entry e 
)
static

◆ schedule_remove_entry()

void schedule_remove_entry ( struct schedule s,
struct schedule_entry e 
)

Definition at line 388 of file schedule.c.

References schedule::earliest_wakeup, and schedule_remove_node().

Referenced by multi_close_instance(), and multi_process_timeout().

◆ schedule_remove_node()

void schedule_remove_node ( struct schedule s,
struct schedule_entry e 
)

◆ schedule_rotate_up()

static void schedule_rotate_up ( struct schedule s,
struct schedule_entry e 
)
static

◆ schedule_set_pri()

static void schedule_set_pri ( struct schedule_entry e)
inlinestatic

Definition at line 55 of file schedule.c.

References schedule_entry::pri, and random.

Referenced by schedule_add_modify(), and schedule_insert().