blob: 72f4ddf0bdcfe0ed3def70a830896b70b1c5e3c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
(* TEST
*)
let check_dls () =
let k1 = Domain.DLS.new_key (fun () -> 10) in
let k2 = Domain.DLS.new_key (fun () -> 1.0) in
Domain.DLS.set k1 100;
Domain.DLS.set k2 200.0;
let v1 = Domain.DLS.get k1 in
let v2 = Domain.DLS.get k2 in
assert (v1 = 100);
assert (v2 = 200.0);
Gc.major ()
let check_dls_domain_reuse () =
let k1 = Domain.DLS.new_key (fun () -> 100) in
let k2 = Domain.DLS.new_key (fun () -> 200) in
let domains = Array.init 4 (fun _ -> Domain.spawn(fun _ ->
Domain.DLS.set k1 31415;
Domain.DLS.set k2 27182;
assert (Domain.DLS.get k1 = 31415);
assert (Domain.DLS.get k2 = 27182))) in
Array.iter Domain.join domains;
Gc.full_major ();
let domains2 = Array.init 4 (fun _ -> Domain.spawn(fun _ ->
assert(Domain.DLS.get k1 = 100);
assert(Domain.DLS.get k2 = 200))) in
Array.iter Domain.join domains2
let _ =
let domains = Array.init 3 (fun _ -> Domain.spawn(check_dls)) in
check_dls ();
Array.iter Domain.join domains;
check_dls_domain_reuse ();
print_endline "ok"
|