|
VLC 4.0.0-dev
|
Data Structures | |
| struct | vlc_suuint |
| struct | vlc_cond_waiter |
Enumerations | |
| enum | { VLC_LATCH_READY , VLC_LATCH_CONTEND , VLC_LATCH_PENDING } |
| 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. | |
| static void | vlc_mutex_init_common (vlc_mutex_t *mtx, bool recursive) |
| void | vlc_mutex_init (vlc_mutex_t *mtx) |
| Initializes a fast mutex. | |
| void | vlc_mutex_init_recursive (vlc_mutex_t *mtx) |
| Initializes a recursive mutex. | |
| bool | vlc_mutex_held (const vlc_mutex_t *mtx) |
| Checks if a mutex is locked. | |
| void | vlc_mutex_lock (vlc_mutex_t *mtx) |
| Acquires a mutex. | |
| int | vlc_mutex_trylock (vlc_mutex_t *mtx) |
| Tries to acquire a mutex. | |
| void | vlc_mutex_unlock (vlc_mutex_t *mtx) |
| Releases a mutex. | |
| void | vlc_cond_init (vlc_cond_t *cond) |
| Initializes a condition variable. | |
| 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. | |
| void | vlc_cond_broadcast (vlc_cond_t *cond) |
| Wakes up all threads waiting on a condition variable. | |
| 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) |
| void | vlc_cond_wait (vlc_cond_t *cond, vlc_mutex_t *mutex) |
| Waits on a condition variable. | |
| 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. | |
| void | vlc_sem_init (vlc_sem_t *sem, unsigned value) |
| Initializes a semaphore. | |
| int | vlc_sem_post (vlc_sem_t *sem) |
| Increments the value of a semaphore. | |
| void | vlc_sem_wait (vlc_sem_t *sem) |
| Waits on a semaphore. | |
| int | vlc_sem_timedwait (vlc_sem_t *sem, vlc_tick_t deadline) |
| Waits on a semaphore within a deadline. | |
| int | vlc_sem_trywait (vlc_sem_t *sem) |
| Tries to decrement a semaphore. | |
| void | vlc_latch_init (vlc_latch_t *latch, size_t value) |
| Initializes a latch. | |
| static bool | vlc_latch_count_down_ready (vlc_latch_t *latch, size_t n) |
| void | vlc_latch_count_down (vlc_latch_t *latch, size_t n) |
| Decrements the value of a latch. | |
| void | vlc_latch_count_down_and_wait (vlc_latch_t *latch, size_t n) |
| Decrements the value of a latch and waits on it. | |
| bool | vlc_latch_is_ready (const vlc_latch_t *latch) |
| Checks if a latch is ready. | |
| void | vlc_latch_wait (vlc_latch_t *latch) |
| Waits on a latch. | |
| void | vlc_queuedmutex_init (vlc_queuedmutex_t *m) |
| bool | vlc_queuedmutex_held (vlc_queuedmutex_t *m) |
| Checks if a queued mutex is locked. | |
| void | vlc_queuedmutex_lock (vlc_queuedmutex_t *m) |
| void | vlc_queuedmutex_unlock (vlc_queuedmutex_t *m) |
| bool() | vlc_once_begin (vlc_once_t *restrict once) |
| Begins a one-time initialization. | |
| void | vlc_once_complete (vlc_once_t *restrict once) |
| Completes a one-time initialization. | |
|
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_t::lock, vlc_cond_waiter::next, vlc_cond_waiter::pprev, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vlc_cond_timedwait(), and vlc_cond_wait().
|
static |
References vlc_cond_t::head, vlc_cond_t::lock, vlc_cond_waiter::next, vlc_cond_waiter::pprev, vlc_cond_waiter::value, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vlc_cond_timedwait(), and vlc_cond_wait().
|
static |
References vlc_latch_t::ready, vlc_latch_t::value, vlc_cond_waiter::value, vlc_atomic_notify_all(), VLC_LATCH_CONTEND, and VLC_LATCH_READY.
Referenced by vlc_latch_count_down(), and vlc_latch_count_down_and_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().
| bool vlc_queuedmutex_held | ( | vlc_queuedmutex_t * | m | ) |
Checks if a queued mutex is locked.
This function checks if the calling thread holds a given queued mutual exclusion lock. It has no side effects and is essentially intended for run-time debugging.
| false | the mutex is not locked by the calling thread |
| true | the mutex is locked by the calling thread |
References vlc_queuedmutex_t::owner, and vlc_thread_id().
| void vlc_queuedmutex_init | ( | vlc_queuedmutex_t * | m | ) |
References vlc_queuedmutex_t::head, vlc_queuedmutex_t::owner, and vlc_queuedmutex_t::tail.
Referenced by vout_Create().
| void vlc_queuedmutex_lock | ( | vlc_queuedmutex_t * | m | ) |
References vlc_queuedmutex_t::head, vlc_queuedmutex_t::owner, vlc_queuedmutex_t::tail, vlc_atomic_wait(), and vlc_thread_id().
Referenced by RenderPicture(), vout_ChangeCrop(), vout_ChangeDisplayAspectRatio(), vout_ChangeDisplayFitting(), vout_ChangeDisplaySize(), vout_ChangeIccProfile(), vout_ChangeProjection(), vout_ChangeViewpoint(), vout_ChangeZoom(), vout_ControlChangeStereo(), vout_FlushUnlocked(), vout_ReleaseDisplay(), vout_Start(), and vout_ToggleProjection().
| void vlc_queuedmutex_unlock | ( | vlc_queuedmutex_t * | m | ) |
References vlc_queuedmutex_t::head, vlc_queuedmutex_t::owner, and vlc_atomic_notify_all().
Referenced by RenderPicture(), vout_ChangeCrop(), vout_ChangeDisplayAspectRatio(), vout_ChangeDisplayFitting(), vout_ChangeDisplaySize(), vout_ChangeIccProfile(), vout_ChangeProjection(), vout_ChangeViewpoint(), vout_ChangeZoom(), vout_ControlChangeStereo(), vout_FlushUnlocked(), vout_ReleaseDisplay(), vout_Start(), and vout_ToggleProjection().