Module CI_monitored_pool

type t
val pools : unit ‑> t Astring.String.Map.t
val create : string ‑> int ‑> t
val use : t ‑> ?⁠log:CI_live_log.t ‑> ?⁠label:string ‑> CI_s.job_id ‑> (unit ‑> 'a Lwt.t) ‑> 'a Lwt.t

use t job fn evaluates fn () with one pool resource held. job (and label) will be displayed as the reason why the resource is in use. If log is provided then a message will be logged if we have to wait, and if the log is cancellable then the user will be able to cancel the operation.

val active : t ‑> int
val capacity : t ‑> int
val qlen : t ‑> int
val users : t ‑> ((CI_s.job_id * string option) * CI_live_log.t option) list

users t is the list of reasons why resources are being used, one per resource, and (optionally) its log (through which it may be possible to cancel the job).