size_t count
Definition: core.c:461
struct vlc_h2_queue prio
Definition: h2output.c:50
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:975
bool closing
Definition: h2output.c:54
ssize_t(* writev)(struct vlc_tls *, const struct iovec *, unsigned)
Definition: vlc_tls.h:47
static ssize_t vlc_https_send(vlc_tls_t *tls, const void *buf, size_t len)
Sends bytes to a connection.
Definition: h2output.c:192
int fd
Definition: vlc_fixups.h:416
vlc_mutex_t lock
Definition: h2output.c:56
Definition: vlc_fixups.h:414
Transport layer socket.
Definition: vlc_tls.h:43
int poll(struct pollfd *, unsigned, int)
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:263
struct vlc_h2_output * vlc_h2_output_create(struct vlc_tls *tls, bool client)
Definition: h2output.c:300
struct vlc_h2_frame * first
Definition: h2output.c:42
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
static int vlc_h2_output_queue(struct vlc_h2_output *out, struct vlc_h2_queue *q, struct vlc_h2_frame *f)
Queues one outgoing HTTP/2.
Definition: h2output.c:62
vlc_cond_t wait
Definition: h2output.c:57
struct vlc_h2_queue queue
Definition: h2output.c:51
struct vlc_tls * tls
Definition: h2output.c:48
size_t size
Definition: h2output.c:52
static void * vlc_h2_client_output_thread(void *data)
Definition: h2output.c:284
static void vlc_h2_output_flush_unlocked(struct vlc_h2_output *out)
Definition: h2output.c:173
struct vlc_h2_frame * next
Definition: h2frame.h:31
#define POLLOUT
Definition: vlc_fixups.h:412
Definition: h2output.c:40
static int vlc_tls_GetFD(vlc_tls_t *tls)
Definition: vlc_tls.h:187
short events
Definition: vlc_fixups.h:417
static struct vlc_h2_frame * vlc_h2_output_dequeue(struct vlc_h2_output *out)
Dequeues one outgoing HTTP/2.
Definition: h2output.c:125
Thread handle.
Definition: vlc_threads.h:252
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
#define VLC_H2_MAX_QUEUE
Definition: h2output.c:38
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:322
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
size_t vlc_h2_frame_size(const struct vlc_h2_frame *f)
Definition: h2frame.c:72
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
#define unlikely(p)
Definition: vlc_common.h:114
static int vlc_h2_frame_send(struct vlc_tls *tls, struct vlc_h2_frame *f)
Sends one HTTP/2 frame through TLS.
Definition: h2output.c:242
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
Definition: h2output.c:46
struct vlc_h2_frame ** last
Definition: h2output.c:43
vlc_thread_t thread
Definition: h2output.c:58
bool failed
Definition: h2output.c:53
uint8_t data[]
Definition: h2frame.h:32
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
int vlc_h2_output_send(struct vlc_h2_output *out, struct vlc_h2_frame *f)
Definition: h2output.c:119
int vlc_h2_output_send_prio(struct vlc_h2_output *out, struct vlc_h2_frame *f)
Definition: h2output.c:114
void vlc_h2_output_destroy(struct vlc_h2_output *out)
Definition: h2output.c:331
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:270
static void * vlc_h2_output_thread(void *data)
Output thread.
Definition: h2output.c:256