• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mbarbin / super-master-mind / 216

31 Jan 2026 09:40AM UTC coverage: 75.947% (-12.4%) from 88.313%
216

Pull #45

github

web-flow
Merge 729c30d79 into 3d48eb3d9
Pull Request #45: Dune pkg ci migration

922 of 1214 relevant lines covered (75.95%)

2008918.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

72.73
/src/task_pool.ml
1
(*********************************************************************************)
2
(*  super-master-mind: A solver for the super master mind game                   *)
3
(*  SPDX-FileCopyrightText: 2021-2025 Mathieu Barbin <mathieu.barbin@gmail.com>  *)
4
(*  SPDX-License-Identifier: MIT                                                 *)
5
(*********************************************************************************)
6

7
module Config = struct
8
  type t = { num_workers : int }
9

10
  module Default = struct
11
    let num_workers () = Domain.recommended_domain_count () - 1
3✔
12
  end
13

14
  let default () = { num_workers = Default.num_workers () }
3✔
15

16
  let arg =
17
    let open Command.Std in
18
    let+ num_domains =
19
      Arg.named_opt
11✔
20
        [ "num-domains" ]
21
        Param.int
22
        ~doc:
23
          "Total number of cores to use for parallel computing, including the main \
24
           domain. By default, use all available cores."
25
    in
26
    let num_workers =
×
27
      match num_domains with
28
      | Some n -> n - 1
×
29
      | None -> Default.num_workers ()
×
30
    in
31
    { num_workers }
32
  ;;
33
end
34

35
type t = { pool : Domainslib.Task.pool }
36

37
let with_t { Config.num_workers } ~f =
38
  let pool = Domainslib.Task.setup_pool ~num_domains:num_workers () in
3✔
39
  let (t : t) = { pool } in
3✔
40
  Fun.protect
41
    ~f:(fun () -> f ~task_pool:t)
3✔
42
    ~finally:(fun () -> Domainslib.Task.teardown_pool pool)
3✔
43
;;
44

45
let run t ~f = Domainslib.Task.run t.pool (fun () -> f ~pool:t.pool)
6✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc