void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
size_t count
Definition: core.c:401
struct vlc_h2_queue prio
Definition: h2output.c:51
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:1010
bool closing
Definition: h2output.c:55
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static ssize_t vlc_https_send(vlc_tls_t *tls, const void *buf, size_t len)
Sends bytes to a connection.
Definition: h2output.c:193
int fd
Definition: vlc_fixups.h:419
static int vlc_tls_GetPollFD(vlc_tls_t *tls, short *events)
Generates an event polling description.
Definition: vlc_tls.h:314
vlc_mutex_t lock
Definition: h2output.c:57
Definition: vlc_fixups.h:417
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
Transport layer socket.
Definition: vlc_tls.h:65
int poll(struct pollfd *, unsigned, int)
struct vlc_h2_output * vlc_h2_output_create(struct vlc_tls *tls, bool client)
Definition: h2output.c:302
struct vlc_h2_frame * first
Definition: h2output.c:43
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:63
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
vlc_cond_t wait
Definition: h2output.c:58
struct vlc_h2_queue queue
Definition: h2output.c:52
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
struct vlc_tls * tls
Definition: h2output.c:49
size_t size
Definition: h2output.c:53
static void * vlc_h2_client_output_thread(void *data)
Definition: h2output.c:286
static void vlc_h2_output_flush_unlocked(struct vlc_h2_output *out)
Definition: h2output.c:174
struct vlc_h2_frame * next
Definition: h2frame.h:32
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:183
#define POLLOUT
Definition: vlc_fixups.h:415
Definition: h2output.c:41
short events
Definition: vlc_fixups.h:420
static struct vlc_h2_frame * vlc_h2_output_dequeue(struct vlc_h2_output *out)
Dequeues one outgoing HTTP/2.
Definition: h2output.c:126
Thread handle.
Definition: vlc_threads.h:180
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:1018
#define VLC_H2_MAX_QUEUE
Definition: h2output.c:39
ssize_t(* writev)(struct vlc_tls *, const struct iovec *iov, unsigned len)
Callback for sending data.
Definition: vlc_tls.h:107
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:193
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:208
size_t vlc_h2_frame_size(const struct vlc_h2_frame *f)
Definition: h2frame.c:72
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
Condition variable.
Definition: vlc_threads.h:349
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:244
Definition: h2output.c:47
struct vlc_h2_frame ** last
Definition: h2output.c:44
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_thread_t thread
Definition: h2output.c:59
bool failed
Definition: h2output.c:54
uint8_t data[]
Definition: h2frame.h:33
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
const struct vlc_tls_operations * ops
Callbacks to operate on the stream.
Definition: vlc_tls.h:68
int vlc_h2_output_send(struct vlc_h2_output *out, struct vlc_h2_frame *f)
Definition: h2output.c:120
int vlc_h2_output_send_prio(struct vlc_h2_output *out, struct vlc_h2_frame *f)
Definition: h2output.c:115
void vlc_h2_output_destroy(struct vlc_h2_output *out)
Definition: h2output.c:331
static void * vlc_h2_output_thread(void *data)
Output thread.
Definition: h2output.c:258
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:167