Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
    npro  
 Modern all-safe Rust Network Protocol library supporting h1, h2, h3, ws, wt sans-IO and with socket IO + tls
git clone https://npro.rs/repo/npro
 
root / assets / netbsd-iOS.svg
Author[]Andy Green <andy@warmcat.com> 2026-04-06 05:31 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-04-08 08:43 UTC
Tree2f0d986564721786cfd855a3fa76eecf56588504   Raw Patch
 
builder: improve task running detection
builder: improve task running detection
diff --git a/src/builder/b-task.c b/src/builder/b-task.c index 1a8ea3e..5752fd0 100644 --- a/src/builder/b-task.c +++ b/src/builder/b-task.c @@ -173,6 +173,8 @@ saib_can_accept_task(sai_task_t *task, sai_plat_t *sp) // int cpu_load = saib_get_system_cpu(&builder); #endif + unsigned int executing = 0; + if ((((builder.ram_limit_kib * 4) / 3) - builder.ram_reserved_kib) < task->est_peak_mem_kib) { lwsl_notice("%s: reject task %s: not enough RAM: task %u vs %u lim - %u res\n", __func__, task->uuid, (unsigned int)task->est_peak_mem_kib, (unsigned int)builder.ram_limit_kib, (unsigned int)builder.ram_reserved_kib); @@ -185,11 +187,19 @@ saib_can_accept_task(sai_task_t *task, sai_plat_t *sp) return 1; } - if (sp->nspawn_owner.count >= tc) { + lws_start_foreach_dll(struct lws_dll2 *, p, sp->nspawn_owner.head) { + struct sai_nspawn *xns = lws_container_of(p, struct sai_nspawn, list); + if (xns->state == NSSTATE_INIT || + xns->state == NSSTATE_MOUNTING || + xns->state == NSSTATE_EXECUTING_STEPS) + executing++; + } lws_end_foreach_dll(p); + + if (executing >= tc) { lwsl_notice("%s: reject task %s: already running %u tasks\n", __func__, task->uuid, tc); - return 1; /* nope */ - } + return 1; /* nope */ + } return 0; /* acceptable */ }
Page fetched 0s ago, creation time: 2ms (vhost etag hits: 0%, cache hits: 0%)