VLC
4.0.0-dev
|
Data Structures | |
struct | vlc_suuint |
struct | vlc_cond_waiter |
Macros | |
#define | vlc_cancel_addr_prepare(addr) ((void)0) |
#define | vlc_cancel_addr_finish(addr) ((void)0) |
#define | THREAD_SELF ((const void *)thread_self) |
Enumerations | |
enum | { VLC_ONCE_UNDONE, VLC_ONCE_DOING, VLC_ONCE_CONTEND, VLC_ONCE_DONE } |
Functions | |
void | vlc_global_mutex (unsigned n, bool acquire) |
Internal handler for global mutexes. More... | |
static void | vlc_mutex_init_common (vlc_mutex_t *mtx, bool recursive) |
void | vlc_mutex_init (vlc_mutex_t *mtx) |
Initializes a fast mutex. More... | |
void | vlc_mutex_init_recursive (vlc_mutex_t *mtx) |
Initializes a recursive mutex. More... | |
bool | vlc_mutex_held (const vlc_mutex_t *mtx) |
Checks if a mutex is locked. More... | |
void | vlc_mutex_lock (vlc_mutex_t *mtx) |
Acquires a mutex. More... | |
int | vlc_mutex_trylock (vlc_mutex_t *mtx) |
Tries to acquire a mutex. More... | |
void | vlc_mutex_unlock (vlc_mutex_t *mtx) |
Releases a mutex. More... | |
void | vlc_cond_init (vlc_cond_t *cond) |
Initializes a condition variable. More... | |
static void | vlc_cond_signal_waiter (struct vlc_cond_waiter *waiter) |
void | vlc_cond_signal (vlc_cond_t *cond) |
Wakes up one thread waiting on a condition variable. More... | |
void | vlc_cond_broadcast (vlc_cond_t *cond) |
Wakes up all threads waiting on a condition variable. More... | |
static void | vlc_cond_wait_prepare (struct vlc_cond_waiter *waiter, vlc_cond_t *cond, vlc_mutex_t *mutex) |
static void | vlc_cond_wait_finish (struct vlc_cond_waiter *waiter, vlc_cond_t *cond, vlc_mutex_t *mutex) |
static void | vlc_cond_wait_cleanup (void *data) |
void | vlc_cond_wait (vlc_cond_t *cond, vlc_mutex_t *mutex) |
Waits on a condition variable. More... | |
int | vlc_cond_timedwait (vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline) |
Waits on a condition variable up to a certain date. More... | |
int | vlc_cond_timedwait_daytime (vlc_cond_t *cond, vlc_mutex_t *mutex, time_t deadline) |
void | vlc_sem_init (vlc_sem_t *sem, unsigned value) |
Initializes a semaphore. More... | |
int | vlc_sem_post (vlc_sem_t *sem) |
Increments the value of a semaphore. More... | |
void | vlc_sem_wait (vlc_sem_t *sem) |
Waits on a semaphore. More... | |
int | vlc_sem_timedwait (vlc_sem_t *sem, vlc_tick_t deadline) |
Waits on a semaphore within a deadline. More... | |
void() | vlc_once (vlc_once_t *restrict once, void(*cb)(void)) |
Variables | |
static _Thread_local char | thread_self [1] |
#define THREAD_SELF ((const void *)thread_self) |
Referenced by vlc_mutex_held(), vlc_mutex_lock(), and vlc_mutex_trylock().
#define vlc_cancel_addr_finish | ( | addr | ) | ((void)0) |
Referenced by vlc_cond_wait_finish(), and vlc_global_mutex().
#define vlc_cancel_addr_prepare | ( | addr | ) | ((void)0) |
Referenced by vlc_cond_wait_prepare(), and vlc_global_mutex().
|
static |
References vlc_cond_waiter::next, vlc_cond_waiter::pprev, vlc_cond_waiter::value, and vlc_atomic_notify_one().
Referenced by vlc_cond_broadcast(), and vlc_cond_signal().
|
static |
References vlc_cond_waiter::cond, vlc_cond_waiter::mutex, and vlc_cond_wait_finish().
Referenced by vlc_cond_timedwait(), vlc_cond_timedwait_daytime(), and vlc_cond_wait().
|
static |
References vlc_cond_t::lock, vlc_cond_waiter::next, vlc_cond_waiter::pprev, vlc_cond_waiter::value, vlc_cancel_addr_finish, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vlc_cond_wait_cleanup().
|
static |
References vlc_cond_waiter::cond, vlc_cond_t::head, vlc_cond_t::lock, vlc_cond_waiter::mutex, vlc_cond_waiter::next, vlc_cond_waiter::pprev, vlc_cond_waiter::value, vlc_cancel_addr_prepare, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vlc_cond_timedwait(), vlc_cond_timedwait_daytime(), and vlc_cond_wait().
|
static |
References vlc_mutex_t::owner, vlc_mutex_t::recursion, and vlc_mutex_t::value.
Referenced by vlc_mutex_init(), and vlc_mutex_init_recursive().
void() vlc_once | ( | vlc_once_t *restrict | once, |
void(*)(void) | cb | ||
) |
|
static |