17 #ifndef __mod_h2__h2_mplx__
18 #define __mod_h2__h2_mplx__
140 unsigned int *pstream_count);
158 unsigned int *pstream_count);
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.
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:128
const char * s
Definition: mod_dav.h:1327
apr_bucket_brigade request_rec apr_pool_t * pool
Definition: mod_dav.h:557
int apr_status_t
Definition: apr_errno.h:44
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_int64_t apr_time_t
Definition: apr_time.h:45
struct h2_stream * h2_stream_get_fn(struct h2_session *session, int stream_id)
Definition: h2.h:195
int h2_stream_pri_cmp_fn(int stream_id1, int stream_id2, void *session)
Definition: h2.h:194
void stream_ev_callback(void *ctx, struct h2_stream *stream)
Definition: h2_mplx.h:170
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)
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)
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)
Definition: h2_mplx.h:184
apr_status_t h2_mplx_c1_reprioritize(h2_mplx *m, h2_stream_pri_cmp_fn *cmp, struct h2_session *session)
const struct h2_stream * h2_mplx_c2_stream_get(h2_mplx *m, int stream_id)
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)
struct h2_ihash_t h2_ihash_t
Definition: h2_util.h:42
struct ap_conn_producer_t ap_conn_producer_t
Definition: h2_workers.h:70
struct h2_workers h2_workers
Definition: h2_workers.h:31
Definition: apr_arch_poll_private.h:124
Definition: apr_arch_thread_cond.h:34
Definition: apr_arch_thread_mutex.h:28
Structure to store things which are per connection.
Definition: httpd.h:1193
Definition: h2_bucket_beam.h:44
apr_pool_t * pool
Definition: h2_mplx.h:52
apr_bucket_alloc_t * bucket_alloc
Definition: h2_mplx.h:53
apr_pollset_t * pollset
Definition: h2_mplx.h:92
int child_num
Definition: h2_mplx.h:59
apr_uint32_t processing_limit
Definition: h2_mplx.h:82
apr_uint32_t processing_max
Definition: h2_mplx.h:83
apr_thread_mutex_t * lock
Definition: h2_mplx.h:89
apr_uint32_t processing_count
Definition: h2_mplx.h:81
server_rec * s
Definition: h2_mplx.h:64
int aborted
Definition: h2_mplx.h:67
struct h2_iqueue * streams_input_read
Definition: h2_mplx.h:97
apr_interval_time_t mood_update_interval
Definition: h2_mplx.h:86
int shutdown
Definition: h2_mplx.h:66
struct h2_ihash_t * shold
Definition: h2_mplx.h:72
struct h2_stream * stream0
Definition: h2_mplx.h:63
struct h2_workers * workers
Definition: h2_mplx.h:100
apr_uint32_t id
Definition: h2_mplx.h:60
apr_uint32_t max_spare_transits
Definition: h2_mplx.h:102
apr_array_header_t * c2_transits
Definition: h2_mplx.h:103
struct h2_iqueue * streams_output_written
Definition: h2_mplx.h:98
struct apr_thread_cond_t * join_wait
Definition: h2_mplx.h:90
apr_size_t stream_max_mem
Definition: h2_mplx.h:77
apr_array_header_t * streams_ev_out
Definition: h2_mplx.h:94
apr_pool_t * pool
Definition: h2_mplx.h:62
apr_uint32_t max_streams
Definition: h2_mplx.h:78
apr_array_header_t * streams_ev_in
Definition: h2_mplx.h:93
struct h2_ihash_t * streams
Definition: h2_mplx.h:71
conn_rec * c1
Definition: h2_mplx.h:61
ap_conn_producer_t * producer
Definition: h2_mplx.h:69
apr_time_t last_mood_change
Definition: h2_mplx.h:85
apr_array_header_t * spurge
Definition: h2_mplx.h:73
struct h2_iqueue * q
Definition: h2_mplx.h:75
apr_uint32_t irritations_since
Definition: h2_mplx.h:87
int polling
Definition: h2_mplx.h:68
apr_thread_mutex_t * poll_lock
Definition: h2_mplx.h:96
apr_uint32_t max_stream_id_started
Definition: h2_mplx.h:79
Definition: h2_session.h:64
Definition: h2_stream.h:78
A structure to store information for each virtual server.
Definition: httpd.h:1382