summaryrefslogtreecommitdiff
path: root/src/reqpool.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2021-07-29 02:32:08 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2021-09-08 15:06:06 -0400
commit62a9d5b78fa84c56397b673b5cf42abaf78ba6c8 (patch)
tree60b3d977954350ccd433474814164d1da00aa9d5 /src/reqpool.c
parent323e03fb2d0016d2ecf52d51ac7eb21f16f9e222 (diff)
downloadlighttpd-git-62a9d5b78fa84c56397b673b5cf42abaf78ba6c8.tar.gz
[core] clear request,connection pools every 64 sec (#3084)
x-ref: "Memory fragmentation with HTTP/2 enabled" https://redmine.lighttpd.net/issues/3084
Diffstat (limited to 'src/reqpool.c')
-rw-r--r--src/reqpool.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/src/reqpool.c b/src/reqpool.c
index b634edeb..4c76bf97 100644
--- a/src/reqpool.c
+++ b/src/reqpool.c
@@ -232,21 +232,6 @@ request_free_data (request_st * const r)
/* linked list of (request_st *) cached for reuse */
static request_st *reqpool;
-/* max num of (request_st *) to cache */
-static uint32_t reqspace;
-
-
-void
-request_pool_extend (server *srv, const uint32_t sz)
-{
- for (uint32_t i = 0; i < sz; ++i) {
- request_st * const x = calloc(1, sizeof(request_st));
- force_assert(x);
- request_init_data(x, NULL, srv);
- x->con = (connection *)reqpool; /*(reuse r->con as next ptr)*/
- reqpool = x;
- }
-}
void
@@ -257,7 +242,6 @@ request_pool_free (void)
reqpool = (request_st *)r->con; /*(reuse r->con as next ptr)*/
request_free_data(r);
free(r);
- ++reqspace;
}
}
@@ -279,15 +263,8 @@ request_release (request_st * const r)
request_reset_ex(r);
r->state = CON_STATE_CONNECT;
- if (reqspace) {
- --reqspace;
- r->con = (connection *)reqpool; /*(reuse r->con as next ptr)*/
- reqpool = r;
- }
- else {
- request_free_data(r);
- free(r);
- }
+ r->con = (connection *)reqpool; /*(reuse r->con as next ptr)*/
+ reqpool = r;
}
@@ -297,7 +274,6 @@ request_acquire (connection * const con)
request_st *r = reqpool;
if (r) {
reqpool = (request_st *)r->con; /*(reuse r->con as next ptr)*/
- ++reqspace;
}
else {
r = calloc(1, sizeof(request_st));