MINOR: http: create a dedicated pool for http_txn

This one will not necessarily be allocated for each stream, and we want
to use the fact that it equals null to know it's not present so that we
can always deduce its presence from the stream pointer.

This commit only creates the new pool.
This commit is contained in:
Willy Tarreau 2015-04-03 22:55:33 +02:00
parent cb7dd015be
commit 63986c72c8
3 changed files with 4 additions and 0 deletions

View File

@ -1443,6 +1443,7 @@ void deinit(void)
pool_destroy2(pool2_pendconn);
pool_destroy2(pool2_sig_handlers);
pool_destroy2(pool2_hdr_idx);
pool_destroy2(pool2_http_txn);
if (have_appsession) {
pool_destroy2(apools.serverid);

View File

@ -326,6 +326,7 @@ void init_proto_http()
FD_SET(0x7f, http_encode_map);
/* memory allocations */
pool2_http_txn = create_pool("http_txn", sizeof(struct http_txn), MEM_F_SHARED);
pool2_requri = create_pool("requri", REQURI_LEN, MEM_F_SHARED);
pool2_uniqueid = create_pool("uniqueid", UNIQUEID_LEN, MEM_F_SHARED);
}
@ -1087,6 +1088,7 @@ void http_return_srv_error(struct stream *s, struct stream_interface *si)
extern const char sess_term_cond[8];
extern const char sess_fin_state[8];
extern const char *monthname[12];
struct pool_head *pool2_http_txn;
struct pool_head *pool2_requri;
struct pool_head *pool2_capture = NULL;
struct pool_head *pool2_uniqueid;

View File

@ -680,6 +680,7 @@ static void stream_free(struct stream *s)
/* We may want to free the maximum amount of pools if the proxy is stopping */
if (fe && unlikely(fe->state == PR_STSTOPPED)) {
pool_flush2(pool2_buffer);
pool_flush2(pool2_http_txn);
pool_flush2(pool2_hdr_idx);
pool_flush2(pool2_requri);
pool_flush2(pool2_capture);