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

mbarbin / super-master-mind / 217

31 Jan 2026 12:24PM UTC coverage: 50.206% (-38.1%) from 88.313%
217

Pull #45

github

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

610 of 1215 relevant lines covered (50.21%)

597078.5 hits per line

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

90.91
/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
2✔
12
  end
13

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

16
  let arg =
17
    let open Command.Std in
18
    let+ num_domains =
19
      Arg.named_opt
8✔
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 =
3✔
27
      match num_domains with
28
      | Some n -> n - 1
1✔
29
      | None -> Default.num_workers ()
2✔
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)
51✔
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