libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
os_thread.c File Reference
#include <gpac/thread.h>
#include <sched.h>
#include <pthread.h>
#include <semaphore.h>
#include <errno.h>
#include <gpac/list.h>

Data Structures

struct  GF_Thread
 abstracted thread object More...
 
struct  GF_Mutex
 abstracted mutex object More...
 
struct  GF_Semaphore
 abstracted semaphore object More...
 

Typedefs

typedef pthread_t TH_HANDLE
 

Functions

static void log_add_thread (GF_Thread *t)
 
static void log_del_thread (GF_Thread *t)
 
static const char * log_th_name (u32 id)
 
const char * gf_th_log_name (GF_Thread *t)
 
GF_EXPORT GF_Thread * gf_th_new (const char *name)
 thread constructor
 
void * RunThread (void *ptr)
 
GF_EXPORT GF_Err gf_th_run (GF_Thread *t, u32(*Run)(void *param), void *param)
 
void Thread_Stop (GF_Thread *t, Bool Destroy)
 
GF_EXPORT void gf_th_stop (GF_Thread *t)
 thread stopping
 
GF_EXPORT void gf_th_del (GF_Thread *t)
 thread destructor
 
GF_EXPORT void gf_th_set_priority (GF_Thread *t, s32 priority)
 thread priority
 
GF_EXPORT u32 gf_th_status (GF_Thread *t)
 thread status query
 
GF_EXPORT u32 gf_th_id ()
 current thread ID
 
GF_EXPORT GF_Mutex * gf_mx_new (const char *name)
 mutex constructor
 
GF_EXPORT void gf_mx_del (GF_Mutex *mx)
 mutex denstructor
 
GF_EXPORT void gf_mx_v (GF_Mutex *mx)
 mutex unlocking
 
GF_EXPORT u32 gf_mx_p (GF_Mutex *mx)
 mutex locking
 
GF_EXPORT s32 gf_mx_get_num_locks (GF_Mutex *mx)
 get mutex number of locks
 
GF_EXPORT Bool gf_mx_try_lock (GF_Mutex *mx)
 mutex non-blocking lock
 
GF_EXPORT GF_Semaphore * gf_sema_new (u32 MaxCount, u32 InitCount)
 semaphore constructor
 
GF_EXPORT void gf_sema_del (GF_Semaphore *sm)
 semaphore destructor
 
GF_EXPORT Bool gf_sema_notify (GF_Semaphore *sm, u32 NbRelease)
 semaphore notification.
 
GF_EXPORT Bool gf_sema_wait (GF_Semaphore *sm)
 semaphore wait
 
GF_EXPORT Bool gf_sema_wait_for (GF_Semaphore *sm, u32 TimeOut)
 semaphore time wait
 

Variables

static GF_List * thread_bank = NULL
 

Data Structure Documentation

◆ __tag_mutex

struct __tag_mutex

abstracted mutex object

Data Fields
pthread_mutex_t hMutex
u32 Holder
u32 HolderCount
char * log_name

◆ __tag_semaphore

struct __tag_semaphore

abstracted semaphore object

Data Fields
sem_t * hSemaphore
sem_t SemaData

Typedef Documentation

◆ TH_HANDLE

typedef pthread_t TH_HANDLE

Function Documentation

◆ log_add_thread()

static void log_add_thread ( GF_Thread *  t)
static

◆ log_del_thread()

static void log_del_thread ( GF_Thread *  t)
static

◆ log_th_name()

static const char * log_th_name ( u32  id)
static

◆ gf_th_log_name()

const char * gf_th_log_name ( GF_Thread *  t)

◆ RunThread()

void * RunThread ( void *  ptr)

◆ gf_th_run()

GF_EXPORT GF_Err gf_th_run ( GF_Thread *  t,
u32(*)(void *param)  Run,
void *  param 
)

◆ Thread_Stop()

void Thread_Stop ( GF_Thread *  t,
Bool  Destroy 
)

Variable Documentation

◆ thread_bank

GF_List* thread_bank = NULL
static