Go to the documentation of this file.
38 struct vlc_queue_entry;
45 struct vlc_queue_entry *
first;
178 return q->
first == NULL;
228 bool *restrict tombstone)
242 bool *restrict tombstone)
VLC_EXPORT void * vlc_queue_DequeueUnlocked(vlc_queue_t *)
Dequeues the oldest entry (without locking).
Definition: queue.c:96
#define VLC_API
Definition: fourcc_gen.c:31
static void vlc_queue_Kill(vlc_queue_t *q, bool *restrict tombstone)
Marks a queue ended.
Definition: vlc_queue.h:228
Thread-safe queue (a.k.a.
Definition: vlc_queue.h:44
static void vlc_queue_Lock(vlc_queue_t *q)
Locks a queue.
Definition: vlc_queue.h:87
vlc_cond_t wait
Definition: vlc_queue.h:50
struct vlc_queue vlc_queue_t
Thread-safe queue (a.k.a.
vlc_mutex_t lock
Definition: vlc_queue.h:49
VLC_EXPORT void vlc_queue_Init(vlc_queue_t *queue, ptrdiff_t next_offset)
Initializes a queue.
Definition: queue.c:71
static void vlc_queue_Unlock(vlc_queue_t *q)
Unlocks a queue.
Definition: vlc_queue.h:99
VLC_EXPORT void * vlc_queue_Dequeue(vlc_queue_t *)
Dequeues the oldest entry.
Definition: queue.c:135
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
static void vlc_queue_Signal(vlc_queue_t *q)
Wakes one thread waiting for a queue entry up.
Definition: vlc_queue.h:107
VLC_EXPORT void vlc_queue_Enqueue(vlc_queue_t *, void *entry)
Queues an entry.
Definition: queue.c:128
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
Mutex.
Definition: vlc_threads.h:225
struct vlc_queue_entry * first
Definition: vlc_queue.h:46
VLC_EXPORT void * vlc_queue_DequeueAllUnlocked(vlc_queue_t *)
Dequeues all entries (without locking).
Definition: queue.c:116
static void * vlc_queue_DequeueKillable(vlc_queue_t *q, bool *restrict tombstone)
Dequeues one entry from a killable queue.
Definition: vlc_queue.h:242
ptrdiff_t next_offset
Definition: vlc_queue.h:48
static bool vlc_queue_IsEmpty(const vlc_queue_t *q)
Checks if a queue is empty (without locking).
Definition: vlc_queue.h:177
#define VLC_USED
Definition: fourcc_gen.c:32
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
VLC_EXPORT void * vlc_queue_DequeueAll(vlc_queue_t *)
Dequeues all entries.
Definition: queue.c:151
Definition: fourcc_gen.c:51
Condition variable.
Definition: vlc_threads.h:349
static void vlc_queue_Wait(vlc_queue_t *q)
Waits for a queue entry.
Definition: vlc_queue.h:121
struct vlc_queue_entry ** lastp
Definition: vlc_queue.h:47
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
VLC_EXPORT void vlc_queue_EnqueueUnlocked(vlc_queue_t *, void *entry)
Queues an entry (without locking).
Definition: queue.c:80