17#ifndef __mod_h2__h2_mplx__
18#define __mod_h2__h2_mplx__
227#define H2_MPLX_MSG(m, msg) \
228 "h2_mplx(%d-%lu): "msg, m->child_num, (unsigned long)m->id
Thread Safe FIFO bounded queue.
apr_brigade_flush void * ctx
apr_uint32_t apr_uint32_t cmp
const char int apr_pool_t * pool
apr_int64_t apr_interval_time_t
struct h2_stream * h2_stream_get_fn(struct h2_session *session, int stream_id)
int h2_stream_pri_cmp_fn(int stream_id1, int stream_id2, void *session)
static struct h2_workers * workers
void stream_ev_callback(void *ctx, struct h2_stream *stream)
apr_status_t h2_mplx_c1_child_init(apr_pool_t *pool, server_rec *s)
apr_status_t h2_mplx_c1_client_rst(h2_mplx *m, int stream_id, struct h2_stream *stream)
apr_status_t h2_mplx_worker_pop_c2(h2_mplx *m, conn_rec **out_c2)
void h2_mplx_c2_output_written(h2_mplx *m, conn_rec *c2)
void h2_mplx_c1_process(h2_mplx *m, struct h2_iqueue *read_to_process, h2_stream_get_fn *get_stream, h2_stream_pri_cmp_fn *cmp, struct h2_session *session, unsigned int *pstream_count)
void h2_mplx_c1_going_keepalive(h2_mplx *m)
int h2_mplx_c1_shutdown(h2_mplx *m)
int h2_mplx_c1_stream_is_running(h2_mplx *m, struct h2_stream *stream)
void h2_mplx_c1_destroy(h2_mplx *m)
int h2_mplx_stream_cb(struct h2_stream *s, void *userdata)
apr_status_t h2_mplx_c1_reprioritize(h2_mplx *m, h2_stream_pri_cmp_fn *cmp, struct h2_session *session)
h2_mplx * h2_mplx_c1_create(int child_id, apr_uint32_t id, struct h2_stream *stream0, server_rec *s, apr_pool_t *master, struct h2_workers *workers)
int h2_mplx_c1_all_streams_want_send_data(h2_mplx *m)
apr_status_t h2_mplx_c1_poll(h2_mplx *m, apr_interval_time_t timeout, stream_ev_callback *on_stream_input, stream_ev_callback *on_stream_output, void *on_ctx)
void h2_mplx_c2_input_read(h2_mplx *m, conn_rec *c2)
apr_status_t h2_mplx_c1_streams_do(h2_mplx *m, h2_mplx_stream_cb *cb, void *ctx)
apr_status_t h2_mplx_c1_stream_cleanup(h2_mplx *m, struct h2_stream *stream, unsigned int *pstream_count)
const struct h2_stream * h2_mplx_c2_stream_get(h2_mplx *m, int stream_id)
static void on_stream_output(void *ctx, h2_stream *stream)
static void on_stream_input(void *ctx, h2_stream *stream)
static h2_stream * get_stream(h2_session *session, int stream_id)
Structure to store things which are per connection.
apr_bucket_alloc_t * bucket_alloc
apr_uint32_t processing_limit
apr_uint32_t processing_max
apr_thread_mutex_t * lock
apr_uint32_t processing_count
struct h2_iqueue * streams_input_read
apr_interval_time_t mood_update_interval
struct h2_ihash_t * shold
struct h2_stream * stream0
struct h2_workers * workers
apr_uint32_t max_spare_transits
apr_array_header_t * c2_transits
struct h2_iqueue * streams_output_written
struct apr_thread_cond_t * join_wait
apr_size_t stream_max_mem
apr_array_header_t * streams_ev_out
apr_array_header_t * streams_ev_in
struct h2_ihash_t * streams
ap_conn_producer_t * producer
apr_time_t last_mood_change
apr_array_header_t * spurge
apr_uint32_t irritations_since
apr_thread_mutex_t * poll_lock
apr_uint32_t max_stream_id_started
A structure to store information for each virtual server.