summaryrefslogtreecommitdiffstats
path: root/modules/http2/h2_task.h
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2016-03-17 16:22:09 +0100
committerStefan Eissing <icing@apache.org>2016-03-17 16:22:09 +0100
commiteb09b029d9e37f3f289c6b63f7f44ced9c7bde06 (patch)
tree143b64aabcc84e74dfcbec76755e13680e7af673 /modules/http2/h2_task.h
parentmod_http2: slave connections are reused (diff)
downloadapache2-eb09b029d9e37f3f289c6b63f7f44ced9c7bde06.tar.xz
apache2-eb09b029d9e37f3f289c6b63f7f44ced9c7bde06.zip
mod_http2: pushing slave conn setup outside of lock area
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1735444 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http2/h2_task.h')
-rw-r--r--modules/http2/h2_task.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/modules/http2/h2_task.h b/modules/http2/h2_task.h
index 15a1d3cb2c..22220052b2 100644
--- a/modules/http2/h2_task.h
+++ b/modules/http2/h2_task.h
@@ -50,11 +50,10 @@ typedef struct h2_task h2_task;
struct h2_task {
const char *id;
- int stream_id;
- conn_rec *c;
- struct h2_mplx *mplx;
apr_pool_t *pool;
+ struct h2_mplx *mplx;
const struct h2_request *request;
+ conn_rec *c;
unsigned int filters_set : 1;
unsigned int input_eos : 1;
@@ -72,11 +71,21 @@ struct h2_task {
request_rec *r; /* request being processed in this task */
};
-h2_task *h2_task_create(long session_id, const struct h2_request *req,
- conn_rec *c, struct h2_mplx *mplx);
+h2_task *h2_task_create(apr_pool_t *pool, const struct h2_request *req,
+ struct h2_mplx *mplx);
void h2_task_destroy(h2_task *task);
+/**
+ * Attach the task to the given connection, install filter etc.
+ */
+void h2_task_attach(h2_task *task, conn_rec *c);
+/**
+ * Remove any attachments to the connection again, if still attached.
+ * Return the connection or NULL if none was attached.
+ */
+conn_rec *h2_task_detach(h2_task *task);
+
apr_status_t h2_task_do(h2_task *task, struct apr_thread_cond_t *cond);
void h2_task_register_hooks(void);