Le 27/09/2022 à 13:00, ic...@apache.org a écrit :
Author: icing
Date: Tue Sep 27 11:00:10 2022
New Revision: 1904299
URL: http://svn.apache.org/viewvc?rev=1904299&view=rev
Log:
*) mod_http2: use proper apr_time_t where it is due, no (int) casting.
Modified:
httpd/httpd/trunk/modules/http2/h2_workers.c
Modified: httpd/httpd/trunk/modules/http2/h2_workers.c
URL:
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_workers.c?rev=1904299&r1=1904298&r2=1904299&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_workers.c (original)
+++ httpd/httpd/trunk/modules/http2/h2_workers.c Tue Sep 27 11:00:10 2022
@@ -78,7 +78,7 @@ struct h2_workers {
apr_uint32_t max_slots;
apr_uint32_t min_active;
- volatile int idle_limit;
+ volatile apr_time_t idle_limit;
volatile int aborted;
volatile int shutdown;
int dynamic;
@@ -315,7 +315,7 @@ static void* APR_THREAD_FUNC slot_run(ap
APR_RING_INSERT_TAIL(&workers->idle, slot, h2_slot, link);
++workers->idle_slots;
slot->is_idle = 1;
- if (slot->id >= workers->min_active && workers->idle_limit) {
+ if (slot->id >= workers->min_active && workers->idle_limit > 0) {
rv = apr_thread_cond_timedwait(slot->more_work, workers->lock,
workers->idle_limit);
if (APR_TIMEUP == rv) {
@@ -416,7 +416,8 @@ static apr_status_t workers_pool_cleanup
}
h2_workers *h2_workers_create(server_rec *s, apr_pool_t *pchild,
- int max_slots, int min_active, apr_time_t
idle_limit)
+ int max_slots, int min_active,
+ apr_time_t idle_limit)
{
apr_status_t rv;
h2_workers *workers;
@@ -453,7 +454,7 @@ h2_workers *h2_workers_create(server_rec
workers->pool = pool;
workers->min_active = min_active;
workers->max_slots = max_slots;
- workers->idle_limit = (int)((idle_limit > 0)? idle_limit :
apr_time_from_sec(10));
+ workers->idle_limit = (idle_limit > 0)? idle_limit : apr_time_from_sec(10);
Hi,
just wondering if this 10s is related to the default value of
H2MaxWorkerIdleSeconds?
If yes, the doc says 600 (unless I missed something obvious).
CJ
workers->dynamic = (workers->min_active < workers->max_slots);
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,