VLC  4.0.0-dev
Data Structures | Macros | Functions | Variables
thread.c File Reference
Include dependency graph for thread.c:

Data Structures

struct  vlc_thread
struct  vlc_threadvar
struct  vlc_timer


#define Q2LL(q)   ( *( long long * )&( q ))


static void vlc_cancel_self (PVOID dummy)
static ULONG vlc_DosWaitEventSemEx (HEV hev, ULONG ulTimeout)
static ULONG vlc_WaitForSingleObject (HEV hev, ULONG ulTimeout)
static ULONG vlc_Sleep (ULONG ulTimeout)
int _CRT_init (void)
void _CRT_term (void)
unsigned long _System _DLL_InitTerm (unsigned long, unsigned long)
int vlc_threadvar_create (vlc_threadvar_t *p_tls, void(*destr)(void *))
 Allocates a thread-specific variable. More...
void vlc_threadvar_delete (vlc_threadvar_t *p_tls)
 Deallocates a thread-specific variable. More...
int vlc_threadvar_set (vlc_threadvar_t key, void *value)
 Sets a thread-specific variable. More...
void * vlc_threadvar_get (vlc_threadvar_t key)
 Gets the value of a thread-local variable for the calling thread. More...
void vlc_threads_setup (libvlc_int_t *p_libvlc)
static void vlc_thread_cleanup (struct vlc_thread *th)
static void vlc_entry (void *p)
static int vlc_clone_attr (vlc_thread_t *p_handle, bool detached, void *(*entry)(void *), void *data, int priority)
int vlc_clone (vlc_thread_t *p_handle, void *(*entry)(void *), void *data, int priority)
 Creates and starts a new thread. More...
void vlc_join (vlc_thread_t th, void **result)
 Waits for a thread to complete (if needed), then destroys it. More...
int vlc_clone_detach (vlc_thread_t *p_handle, void *(*entry)(void *), void *data, int priority)
int vlc_set_priority (vlc_thread_t th, int priority)
unsigned long vlc_thread_id (void)
 Thread identifier. More...
void vlc_cancel (vlc_thread_t thread_id)
 Marks a thread as cancelled. More...
int vlc_savecancel (void)
 Disables thread cancellation. More...
void vlc_restorecancel (int state)
 Restores the cancellation state. More...
void vlc_testcancel (void)
 Issues an explicit deferred cancellation point. More...
void vlc_control_cancel (vlc_cleanup_t *cleaner)
 Internal handler for thread cancellation. More...
static int vlc_select (int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout)
 __declspec (dllexport)
vlc_tick_t vlc_tick_now (void)
 Precision monotonic clock. More...
void vlc_tick_wait (vlc_tick_t deadline)
 Waits until a deadline. More...
void vlc_tick_sleep (vlc_tick_t delay)
 Waits for an interval of time. More...
static void vlc_timer_do (void *arg)
int vlc_timer_create (vlc_timer_t *id, void(*func)(void *), void *data)
 Initializes an asynchronous timer. More...
void vlc_timer_destroy (vlc_timer_t timer)
 Destroys an initialized timer. More...
void vlc_timer_schedule (vlc_timer_t timer, bool absolute, vlc_tick_t value, vlc_tick_t interval)
 Arms or disarms an initialized timer. More...
unsigned vlc_timer_getoverrun (vlc_timer_t timer)
 Fetches and resets the overrun counter for a timer. More...
unsigned vlc_GetCPUCount (void)
 Count CPUs. More...


static vlc_threadvar_t thread_key
static vlc_mutex_t super_mutex
static vlc_cond_t super_variable
vlc_rwlock_t config_lock
struct vlc_threadvarvlc_threadvar_last = NULL

Macro Definition Documentation

◆ Q2LL

#define Q2LL (   q)    ( *( long long * )&( q ))

Referenced by vlc_tick_now().

Function Documentation

◆ __declspec()

__declspec ( dllexport  )

◆ _CRT_init()

int _CRT_init ( void  )

Referenced by _DLL_InitTerm().

◆ _CRT_term()

void _CRT_term ( void  )

Referenced by _DLL_InitTerm().

◆ _DLL_InitTerm()

unsigned long _System _DLL_InitTerm ( unsigned long  hmod,
unsigned long  flag 

◆ vlc_cancel_self()

static void vlc_cancel_self ( PVOID  dummy)

References vlc_thread::killed, and likely.

Referenced by vlc_DosWaitEventSemEx(), and vlc_testcancel().

◆ vlc_clone_attr()

static int vlc_clone_attr ( vlc_thread_t p_handle,
bool  detached,
void *(*)(void *)  entry,
void *  data,
int  priority 

◆ vlc_clone_detach()

int vlc_clone_detach ( vlc_thread_t p_handle,
void *(*)(void *)  entry,
void *  data,
int  priority 

References vlc_clone_attr().

◆ vlc_DosWaitEventSemEx()

static ULONG vlc_DosWaitEventSemEx ( HEV  hev,
ULONG  ulTimeout 

◆ vlc_entry()

static void vlc_entry ( void *  p)

◆ vlc_select()

static int vlc_select ( int  nfds,
fd_set *  rdset,
fd_set *  wrset,
fd_set *  exset,
struct timeval *  timeout 

◆ vlc_set_priority()

int vlc_set_priority ( vlc_thread_t  th,
int  priority 


◆ vlc_Sleep()

static ULONG vlc_Sleep ( ULONG  ulTimeout)

References vlc_DosWaitEventSemEx().

Referenced by vlc_tick_wait().

◆ vlc_thread_cleanup()

static void vlc_thread_cleanup ( struct vlc_thread th)

◆ vlc_threads_setup()

void vlc_threads_setup ( libvlc_int_t p_libvlc)

◆ vlc_timer_do()

static void vlc_timer_do ( void *  arg)

◆ vlc_WaitForSingleObject()

static ULONG vlc_WaitForSingleObject ( HEV  hev,
ULONG  ulTimeout 

References vlc_DosWaitEventSemEx().

Referenced by vlc_join().

Variable Documentation

◆ config_lock

vlc_rwlock_t config_lock

Referenced by _DLL_InitTerm().

◆ super_mutex

vlc_mutex_t super_mutex

◆ super_variable

vlc_cond_t super_variable

◆ thread_key

vlc_threadvar_t thread_key

◆ vlc_threadvar_last

struct vlc_threadvar * vlc_threadvar_last = NULL