PokerUnicorn
Loading...
Searching...
No Matches
Event Loop

Event loop and task management things. More...

Data Structures

struct  pkrsrv_eventloop_t
 
struct  pkrsrv_eventloop_tasks_t
 
struct  pkrsrv_eventloop_task_t
 

Functions

pkrsrv_eventloop_t * pkrsrv_eventloop_t::pkrsrv_eventloop_new ()
 
void pkrsrv_eventloop_t::pkrsrv_eventloop_free (pkrsrv_eventloop_t *eventloop)
 
void pkrsrv_eventloop_t::pkrsrv_eventloop_run (pkrsrv_eventloop_t *eventloop)
 
void pkrsrv_eventloop_t::pkrsrv_eventloop_stop (pkrsrv_eventloop_t *eventloop)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_new (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t fn, void *params)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_free (pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_run (pkrsrv_eventloop_task_t *task)
 
pkrsrv_eventloop_tasks_t * pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_new ()
 
void pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_free (pkrsrv_eventloop_tasks_t *tasks)
 
void pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_push (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_prepend (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_remove (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_tasks_t::pkrsrv_eventloop_tasks_pop (pkrsrv_eventloop_tasks_t *tasks)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_t::pkrsrv_eventloop_call (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t fn, void *params)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_t::pkrsrv_eventloop_call_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params, int delay)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_t::pkrsrv_eventloop_call_immediate (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_t::pkrsrv_eventloop_call_immediate_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params, int delay)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_call (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_call_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task, int delay)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_call_immediate (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_t::pkrsrv_eventloop_task_call_immediate_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task, int delay)
 

Detailed Description

Event loop and task management things.


Data Structure Documentation

◆ pkrsrv_eventloop

struct pkrsrv_eventloop

Event loop structure

+ Inheritance diagram for pkrsrv_eventloop_t:

Public Member Functions

pkrsrv_eventloop_t * pkrsrv_eventloop_new ()
 
void pkrsrv_eventloop_free (pkrsrv_eventloop_t *eventloop)
 
void pkrsrv_eventloop_run (pkrsrv_eventloop_t *eventloop)
 
void pkrsrv_eventloop_stop (pkrsrv_eventloop_t *eventloop)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_call (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t fn, void *params)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params, int delay)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_immediate (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_immediate_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t func, void *params, int delay)
 
- Public Member Functions inherited from pkrsrv_ref_counted_t
#define PKRSRV_REF_COUNTED_INIT(obj, free_f)    pkrsrv_ref_counted_init(&(obj->ref_counted), (pkrsrv_ref_free_f_t) free_f);
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
#define PKRSRV_REF_COUNTED_USE(obj)
 Increments the reference count of a reference-counted object.
 
#define PKRSRV_REF_COUNTED_LEAVE(obj)
 Decrements the reference count of a reference-counted object.
 

Data Fields

pkrsrv_ref_counted_t ref_counted
 
pthread_mutex_t mutex
 
pthread_cond_t cond
 
bool is_running
 
pkrsrv_eventloop_tasks_t * tasks
 
- Data Fields inherited from pkrsrv_ref_counted_t
int count
 
pkrsrv_ref_free_f_t free_f
 
pthread_mutex_t mutex
 

Additional Inherited Members

- Protected Member Functions inherited from pkrsrv_ref_counted_t
void pkrsrv_ref_counted_init (pkrsrv_ref_counted_t *ref_counted, pkrsrv_ref_free_f_t free_f)
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
void pkrsrv_ref_counted_use (pkrsrv_ref_counted_t *ref_counted)
 Increments the reference count of a reference-counted object.
 
void pkrsrv_ref_counted_leave (void **obj_vp, pkrsrv_ref_counted_t *ref_counted)
 Decrements the reference count of a reference-counted object.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_eventloop_t::ref_counted

◆ mutex

pthread_mutex_t pkrsrv_eventloop_t::mutex

◆ cond

pthread_cond_t pkrsrv_eventloop_t::cond

◆ is_running

bool pkrsrv_eventloop_t::is_running

◆ tasks

pkrsrv_eventloop_tasks_t* pkrsrv_eventloop_t::tasks

◆ pkrsrv_eventloop_tasks

struct pkrsrv_eventloop_tasks

Event loop tasks list structure

+ Inheritance diagram for pkrsrv_eventloop_tasks_t:

Public Member Functions

pkrsrv_eventloop_tasks_t * pkrsrv_eventloop_tasks_new ()
 
void pkrsrv_eventloop_tasks_free (pkrsrv_eventloop_tasks_t *tasks)
 
void pkrsrv_eventloop_tasks_push (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_tasks_prepend (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_tasks_remove (pkrsrv_eventloop_tasks_t *tasks, pkrsrv_eventloop_task_t *task)
 
pkrsrv_eventloop_task_t * pkrsrv_eventloop_tasks_pop (pkrsrv_eventloop_tasks_t *tasks)
 
- Public Member Functions inherited from pkrsrv_ref_counted_t
#define PKRSRV_REF_COUNTED_INIT(obj, free_f)    pkrsrv_ref_counted_init(&(obj->ref_counted), (pkrsrv_ref_free_f_t) free_f);
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
#define PKRSRV_REF_COUNTED_USE(obj)
 Increments the reference count of a reference-counted object.
 
#define PKRSRV_REF_COUNTED_LEAVE(obj)
 Decrements the reference count of a reference-counted object.
 

Data Fields

pkrsrv_ref_counted_t ref_counted
 
pkrsrv_eventloop_task_t * next
 
pkrsrv_eventloop_task_t * prev
 
pkrsrv_eventloop_task_t * terminal
 
int length
 
- Data Fields inherited from pkrsrv_ref_counted_t
int count
 
pkrsrv_ref_free_f_t free_f
 
pthread_mutex_t mutex
 

Additional Inherited Members

- Protected Member Functions inherited from pkrsrv_ref_counted_t
void pkrsrv_ref_counted_init (pkrsrv_ref_counted_t *ref_counted, pkrsrv_ref_free_f_t free_f)
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
void pkrsrv_ref_counted_use (pkrsrv_ref_counted_t *ref_counted)
 Increments the reference count of a reference-counted object.
 
void pkrsrv_ref_counted_leave (void **obj_vp, pkrsrv_ref_counted_t *ref_counted)
 Decrements the reference count of a reference-counted object.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_eventloop_tasks_t::ref_counted

◆ next

pkrsrv_eventloop_task_t* pkrsrv_eventloop_tasks_t::next

◆ prev

pkrsrv_eventloop_task_t* pkrsrv_eventloop_tasks_t::prev

◆ terminal

pkrsrv_eventloop_task_t* pkrsrv_eventloop_tasks_t::terminal

◆ length

int pkrsrv_eventloop_tasks_t::length

◆ pkrsrv_eventloop_task

struct pkrsrv_eventloop_task

Event loop task structure

+ Inheritance diagram for pkrsrv_eventloop_task_t:

Public Member Functions

pkrsrv_eventloop_task_t * pkrsrv_eventloop_task_new (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_func_t fn, void *params)
 
void pkrsrv_eventloop_task_free (pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_run (pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_call (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_call_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task, int delay)
 
void pkrsrv_eventloop_task_call_immediate (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task)
 
void pkrsrv_eventloop_task_call_immediate_after (pkrsrv_eventloop_t *eventloop, pkrsrv_eventloop_task_t *task, int delay)
 
- Public Member Functions inherited from pkrsrv_ref_counted_t
#define PKRSRV_REF_COUNTED_INIT(obj, free_f)    pkrsrv_ref_counted_init(&(obj->ref_counted), (pkrsrv_ref_free_f_t) free_f);
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
#define PKRSRV_REF_COUNTED_USE(obj)
 Increments the reference count of a reference-counted object.
 
#define PKRSRV_REF_COUNTED_LEAVE(obj)
 Decrements the reference count of a reference-counted object.
 

Data Fields

pkrsrv_ref_counted_t ref_counted
 
pkrsrv_eventloop_task_t * next
 
pkrsrv_eventloop_task_t * prev
 
pkrsrv_uniqid_uuid_t id
 
pkrsrv_eventloop_t * eventloop
 
pkrsrv_eventloop_task_func_t func
 
pthread_t delay_thread
 
int delay
 
void * params
 
bool is_queued
 
bool is_popped
 
bool is_called
 
bool is_cancelled
 
- Data Fields inherited from pkrsrv_ref_counted_t
int count
 
pkrsrv_ref_free_f_t free_f
 
pthread_mutex_t mutex
 

Additional Inherited Members

- Protected Member Functions inherited from pkrsrv_ref_counted_t
void pkrsrv_ref_counted_init (pkrsrv_ref_counted_t *ref_counted, pkrsrv_ref_free_f_t free_f)
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
void pkrsrv_ref_counted_use (pkrsrv_ref_counted_t *ref_counted)
 Increments the reference count of a reference-counted object.
 
void pkrsrv_ref_counted_leave (void **obj_vp, pkrsrv_ref_counted_t *ref_counted)
 Decrements the reference count of a reference-counted object.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_eventloop_task_t::ref_counted

◆ next

pkrsrv_eventloop_task_t* pkrsrv_eventloop_task_t::next

◆ prev

pkrsrv_eventloop_task_t* pkrsrv_eventloop_task_t::prev

◆ id

pkrsrv_uniqid_uuid_t pkrsrv_eventloop_task_t::id

◆ eventloop

pkrsrv_eventloop_t* pkrsrv_eventloop_task_t::eventloop

◆ func

pkrsrv_eventloop_task_func_t pkrsrv_eventloop_task_t::func

◆ delay_thread

pthread_t pkrsrv_eventloop_task_t::delay_thread

◆ delay

int pkrsrv_eventloop_task_t::delay

◆ params

void* pkrsrv_eventloop_task_t::params

◆ is_queued

bool pkrsrv_eventloop_task_t::is_queued

◆ is_popped

bool pkrsrv_eventloop_task_t::is_popped

◆ is_called

bool pkrsrv_eventloop_task_t::is_called

◆ is_cancelled

bool pkrsrv_eventloop_task_t::is_cancelled

Function Documentation

◆ pkrsrv_eventloop_new()

pkrsrv_eventloop_t * pkrsrv_eventloop_new ( )
Returns
A new event loop

◆ pkrsrv_eventloop_free()

void pkrsrv_eventloop_free ( pkrsrv_eventloop_t * eventloop)

◆ pkrsrv_eventloop_run()

void pkrsrv_eventloop_run ( pkrsrv_eventloop_t * eventloop)

◆ pkrsrv_eventloop_stop()

void pkrsrv_eventloop_stop ( pkrsrv_eventloop_t * eventloop)

◆ pkrsrv_eventloop_task_new()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_task_new ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_func_t fn,
void * params )

◆ pkrsrv_eventloop_task_free()

void pkrsrv_eventloop_task_free ( pkrsrv_eventloop_task_t * task)

◆ pkrsrv_eventloop_task_run()

void pkrsrv_eventloop_task_run ( pkrsrv_eventloop_task_t * task)

◆ pkrsrv_eventloop_tasks_new()

pkrsrv_eventloop_tasks_t * pkrsrv_eventloop_tasks_new ( )

◆ pkrsrv_eventloop_tasks_free()

void pkrsrv_eventloop_tasks_free ( pkrsrv_eventloop_tasks_t * tasks)

◆ pkrsrv_eventloop_tasks_push()

void pkrsrv_eventloop_tasks_push ( pkrsrv_eventloop_tasks_t * tasks,
pkrsrv_eventloop_task_t * task )

◆ pkrsrv_eventloop_tasks_prepend()

void pkrsrv_eventloop_tasks_prepend ( pkrsrv_eventloop_tasks_t * tasks,
pkrsrv_eventloop_task_t * task )

◆ pkrsrv_eventloop_tasks_remove()

void pkrsrv_eventloop_tasks_remove ( pkrsrv_eventloop_tasks_t * tasks,
pkrsrv_eventloop_task_t * task )

◆ pkrsrv_eventloop_tasks_pop()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_tasks_pop ( pkrsrv_eventloop_tasks_t * tasks)

◆ pkrsrv_eventloop_call()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_call ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_func_t fn,
void * params )

Creates a new task and appends it into the event loop queue

◆ pkrsrv_eventloop_call_after()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_after ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_func_t func,
void * params,
int delay )

Creates a new task and appends it into the event loop queue after timeout

◆ pkrsrv_eventloop_call_immediate()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_immediate ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_func_t func,
void * params )

Creates a new task and prepends it into the event loop queue

◆ pkrsrv_eventloop_call_immediate_after()

pkrsrv_eventloop_task_t * pkrsrv_eventloop_call_immediate_after ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_func_t func,
void * params,
int delay )

Creates a new task and appends it into the event loop queue after timeout

◆ pkrsrv_eventloop_task_call()

void pkrsrv_eventloop_task_call ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_t * task )

Appends the task into the event loop queue

◆ pkrsrv_eventloop_task_call_after()

void pkrsrv_eventloop_task_call_after ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_t * task,
int delay )

Appends the task into the event loop queue after timeout

◆ pkrsrv_eventloop_task_call_immediate()

void pkrsrv_eventloop_task_call_immediate ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_t * task )

Prepends the task into the event loop queue

◆ pkrsrv_eventloop_task_call_immediate_after()

void pkrsrv_eventloop_task_call_immediate_after ( pkrsrv_eventloop_t * eventloop,
pkrsrv_eventloop_task_t * task,
int delay )

Appends the task into the event loop queue after timeout