NetSurf
Data Structures | Functions | Variables
schedule.c File Reference
#include <time.h>
#include <stdlib.h>
#include "utils/sys_time.h"
#include "utils/log.h"
#include "framebuffer/schedule.h"
Include dependency graph for schedule.c:

Go to the source code of this file.

Data Structures

struct  nscallback
 scheduled callback. More...
 

Functions

static nserror schedule_remove (void(*callback)(void *p), void *p)
 Unschedule a callback. More...
 
nserror framebuffer_schedule (int tival, void(*callback)(void *p), void *p)
 Schedule a callback. More...
 
int schedule_run (void)
 Process events up to current time. More...
 
void list_schedule (void)
 LOG all current scheduled events. More...
 

Variables

static struct nscallbackschedule_list = NULL
 

Function Documentation

◆ framebuffer_schedule()

nserror framebuffer_schedule ( int  tival,
void(*)(void *p)  callback,
void *  p 
)

Schedule a callback.

Parameters
tivalinterval before the callback should be made in ms
callbackcallback function
puser parameter, passed to callback function

The callback function will be called as soon as possible after t ms have passed.

Definition at line 95 of file schedule.c.

References nscallback::callback, nscallback::next, NSERROR_OK, NSLOG, nscallback::p, schedule_list, schedule_remove(), timeradd, and nscallback::tv.

Referenced by gui_window_start_throbber(), and throbber_advance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ list_schedule()

void list_schedule ( void  )

LOG all current scheduled events.

Definition at line 196 of file schedule.c.

References nscallback::next, NSLOG, schedule_list, and nscallback::tv.

◆ schedule_remove()

static nserror schedule_remove ( void(*)(void *p)  callback,
void *  p 
)
static

Unschedule a callback.

Parameters
callbackcallback function
puser parameter, passed to callback function

All scheduled callbacks matching both callback and p are removed.

Definition at line 49 of file schedule.c.

References nscallback::callback, nscallback::next, NSERROR_OK, NSLOG, nscallback::p, and schedule_list.

Referenced by framebuffer_schedule().

Here is the caller graph for this function:

◆ schedule_run()

int schedule_run ( void  )

Process events up to current time.

Process scheduled callbacks up to current time.

Returns
The number of miliseconds until the next scheduled event.

Definition at line 128 of file schedule.c.

References nscallback::callback, nscallback::next, NSLOG, nscallback::p, schedule_list, timercmp, timersub, and nscallback::tv.

Variable Documentation

◆ schedule_list

struct nscallback* schedule_list = NULL
static

Definition at line 28 of file schedule.c.

Referenced by framebuffer_schedule(), list_schedule(), schedule_remove(), and schedule_run().