@@ -111,37 +111,45 @@ let test_two_pools_sync_last ~domain_bound ~promise_bound =
111111 (pair gen gen)
112112 (Util. repeat 10 @@
113113 fun (input1 ,input2 ) ->
114- let pool1 = Task. setup_pool ~num_domains: input1.num_domains () in
115- let pool2 = Task. setup_pool ~num_domains: input2.num_domains () in
116- let ps1 = build_dep_graph pool1 input1 in
117- let ps2 = build_dep_graph pool2 input2 in
118- Task. run pool1 (fun () -> List. iter (fun p -> Task. await pool1 p) ps1);
119- Task. run pool2 (fun () -> List. iter (fun p -> Task. await pool2 p) ps2);
120- Task. teardown_pool pool1;
121- Task. teardown_pool pool2;
122- true )
114+ try
115+ let pool1 = Task. setup_pool ~num_domains: input1.num_domains () in
116+ let pool2 = Task. setup_pool ~num_domains: input2.num_domains () in
117+ let ps1 = build_dep_graph pool1 input1 in
118+ let ps2 = build_dep_graph pool2 input2 in
119+ Task. run pool1 (fun () -> List. iter (fun p -> Task. await pool1 p) ps1);
120+ Task. run pool2 (fun () -> List. iter (fun p -> Task. await pool2 p) ps2);
121+ Task. teardown_pool pool1;
122+ Task. teardown_pool pool2;
123+ true
124+ with
125+ Failure err -> err = " failed to allocate domain" )
123126
124127let test_two_nested_pools ~domain_bound ~promise_bound =
125128 let gen = arb_deps domain_bound promise_bound in
126129 Test. make ~name: " Domainslib.Task.async/await, one dep, w.2 nested pools" ~count: 100
127130 (pair gen gen)
128131 (Util. repeat 10 @@
129132 fun (input1 ,input2 ) ->
130- let pool1 = Task. setup_pool ~num_domains: input1.num_domains () in
131- let pool2 = Task. setup_pool ~num_domains: input2.num_domains () in
132- Task. run pool1 (fun () ->
133- Task. run pool2 (fun () ->
134- let ps1 = build_dep_graph pool1 input1 in
135- let ps2 = build_dep_graph pool2 input2 in
136- List. iter (fun p -> Task. await pool1 p) ps1;
137- List. iter (fun p -> Task. await pool2 p) ps2));
138- Task. teardown_pool pool1;
139- Task. teardown_pool pool2;
140- true )
133+ try
134+ let pool1 = Task. setup_pool ~num_domains: input1.num_domains () in
135+ let pool2 = Task. setup_pool ~num_domains: input2.num_domains () in
136+ Task. run pool1 (fun () ->
137+ Task. run pool2 (fun () ->
138+ let ps1 = build_dep_graph pool1 input1 in
139+ let ps2 = build_dep_graph pool2 input2 in
140+ List. iter (fun p -> Task. await pool1 p) ps1;
141+ List. iter (fun p -> Task. await pool2 p) ps2));
142+ Task. teardown_pool pool1;
143+ Task. teardown_pool pool2;
144+ true
145+ with
146+ Failure err -> err = " failed to allocate domain" )
141147
142148let () =
149+ let domain_bound = max 1 (Domain. recommended_domain_count () / 2 ) in
150+ let promise_bound = max 2 domain_bound in
143151 QCheck_base_runner. run_tests_main [
144- test_one_pool ~domain_bound: 8 ~promise_bound: 10 ;
145- test_two_pools_sync_last ~domain_bound: 2 ~promise_bound: 2 ;
146- test_two_nested_pools ~domain_bound: 8 ~promise_bound: 10 ;
152+ test_one_pool ~domain_bound ~promise_bound ;
153+ test_two_pools_sync_last ~domain_bound ~promise_bound ;
154+ test_two_nested_pools ~domain_bound ~promise_bound ;
147155 ]
0 commit comments