From 166f428cd195271b668fbcf046e6f2d50576347c Mon Sep 17 00:00:00 2001 From: marisa Date: Wed, 21 Feb 2024 14:37:48 -0300 Subject: [PATCH] RP: use persistent per-thread Request object --- source/net/request_pool.d | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/net/request_pool.d b/source/net/request_pool.d index 78c9a5e..fd1aea5 100644 --- a/source/net/request_pool.d +++ b/source/net/request_pool.d @@ -23,10 +23,17 @@ class RequestPool { private int m_totalWorkers; private TaskPool m_taskPool; private Logger _l; + private Request[] m_requests; this(int totalWorkers = 4) { this.m_totalWorkers = totalWorkers; this._l = getLogger(); + + for (int i = 0; i < totalWorkers + 1; i++) { + Request rq = Request(); + // TODO: add custom fields (such as user agent) + this.m_requests ~= rq; + } } void startBackground() { @@ -49,10 +56,10 @@ class RequestPool { } Response m_run(PRequest request) { - Request rq = Request(); + Request rq = this.m_requests[this.m_taskPool.workerIndex]; rq.addHeaders(request.headers); - _l.debugF!"[%s] %s"(request.method, request.url); + _l.debugF!"[%d][%s] %s"(this.m_taskPool.workerIndex, request.method, request.url); Response rs; @@ -70,7 +77,8 @@ class RequestPool { return null; } - _l.debugF!"[%s] %s result code: %d"(request.method, request.url, rs.code); + _l.debugF!"[%d][%s] %s result code: %d"(this.m_taskPool.workerIndex, request.method, request.url, rs + .code); return rs; } }