|
static struct timespec | mtime_to_ts (mtime_t date) |
|
void | vlc_trace (const char *fn, const char *file, unsigned line) |
| Print a backtrace to the standard error for debugging purpose. More...
|
|
static void | vlc_thread_fatal (const char *action, int error, const char *function, const char *file, unsigned line) |
| Reports a fatal error from the threading layer, for debugging purposes. More...
|
|
void | vlc_mutex_init (vlc_mutex_t *p_mutex) |
| Initializes a fast mutex. More...
|
|
void | vlc_mutex_init_recursive (vlc_mutex_t *p_mutex) |
| Initializes a recursive mutex. More...
|
|
void | vlc_mutex_destroy (vlc_mutex_t *p_mutex) |
| Deinitializes a mutex. More...
|
|
void | vlc_assert_locked (vlc_mutex_t *p_mutex) |
| Asserts that a mutex is locked by the calling thread. More...
|
|
void | vlc_mutex_lock (vlc_mutex_t *p_mutex) |
| Acquires a mutex. More...
|
|
int | vlc_mutex_trylock (vlc_mutex_t *p_mutex) |
| Tries to acquire a mutex. More...
|
|
void | vlc_mutex_unlock (vlc_mutex_t *p_mutex) |
| Releases a mutex. More...
|
|
void | vlc_cond_init (vlc_cond_t *p_condvar) |
| Initializes a condition variable. More...
|
|
void | vlc_cond_init_daytime (vlc_cond_t *p_condvar) |
| Initializes a condition variable (wall clock). More...
|
|
void | vlc_cond_destroy (vlc_cond_t *p_condvar) |
| Deinitializes a condition variable. More...
|
|
void | vlc_cond_signal (vlc_cond_t *p_condvar) |
| Wakes up one thread waiting on a condition variable. More...
|
|
void | vlc_cond_broadcast (vlc_cond_t *p_condvar) |
| Wakes up all threads waiting on a condition variable. More...
|
|
void | vlc_cond_wait (vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex) |
| Waits on a condition variable. More...
|
|
int | vlc_cond_timedwait (vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, mtime_t deadline) |
| Waits on a condition variable up to a certain date. More...
|
|
int | vlc_cond_timedwait_daytime (vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, time_t deadline) |
|
void | vlc_sem_init (vlc_sem_t *sem, unsigned value) |
| Initializes a semaphore. More...
|
|
void | vlc_sem_destroy (vlc_sem_t *sem) |
| Deinitializes 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...
|
|
void | vlc_rwlock_init (vlc_rwlock_t *lock) |
| Initializes a read/write lock. More...
|
|
void | vlc_rwlock_destroy (vlc_rwlock_t *lock) |
| Destroys an initialized unused read/write lock. More...
|
|
void | vlc_rwlock_rdlock (vlc_rwlock_t *lock) |
| Acquires a read/write lock for reading. More...
|
|
void | vlc_rwlock_wrlock (vlc_rwlock_t *lock) |
| Acquires a read/write lock for writing. More...
|
|
void | vlc_rwlock_unlock (vlc_rwlock_t *lock) |
| Releases a read/write lock. More...
|
|
int | vlc_threadvar_create (vlc_threadvar_t *key, 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 int | vlc_clone_attr (vlc_thread_t *th, pthread_attr_t *attr, void *(*entry)(void *), void *data, int priority) |
|
int | vlc_clone (vlc_thread_t *th, 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 *th, void *(*entry)(void *), void *data, int priority) |
| Creates and starts new detached thread. More...
|
|
vlc_thread_t | vlc_thread_self (void) |
| Thread handle. More...
|
|
unsigned long | vlc_thread_id (void) |
| Thread identifier. More...
|
|
int | vlc_set_priority (vlc_thread_t th, int priority) |
|
void | vlc_cancel (vlc_thread_t th) |
| 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 (int cmd,...) |
| Internal handler for thread cancellation. More...
|
|
mtime_t | mdate (void) |
| Precision monotonic clock. More...
|
|
void | mwait (mtime_t deadline) |
| Waits until a deadline. More...
|
|
void | msleep (mtime_t delay) |
| Waits for an interval of time. More...
|
|
unsigned | vlc_GetCPUCount (void) |
| Count CPUs. More...
|
|
int vlc_clone_detach |
( |
vlc_thread_t * |
th, |
|
|
void *(*)(void *) |
entry, |
|
|
void * |
data, |
|
|
int |
priority |
|
) |
| |
Creates and starts new detached thread.
A detached thread cannot be joined. Its resources will be automatically released whenever the thread exits (in particular, its call stack will be reclaimed).
Detached thread are particularly useful when some work needs to be done asynchronously, that is likely to be completed much earlier than the thread can practically be joined. In this case, thread detach can spare memory.
A detached thread may be cancelled, so as to expedite its termination. Be extremely careful if you do this: while a normal joinable thread can safely be cancelled after it has already exited, cancelling an already exited detached thread is undefined: The thread handle would is destroyed immediately when the detached thread exits. So you need to ensure that the detached thread is still running before cancellation is attempted.
- Warning
- Care must be taken that any resources used by the detached thread remains valid until the thread completes.
- Note
- A detached thread must eventually exit just like another other thread. In practice, LibVLC will wait for detached threads to exit before it unloads the plugins.
- Parameters
-
th | [OUT] pointer to hold the thread handle, or NULL |
entry | entry point for the thread |
data | data parameter given to the entry point |
priority | thread priority value |
- Returns
- 0 on success, a standard error code on error.
References vlc_clone_attr().