summaryrefslogtreecommitdiff
path: root/testsuite/tests/statmemprof/thread_exit_in_callback.ml
blob: 66d7c601837d910e318aa7785c6dfecaea181dc1 (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
(* TEST
 {
   include systhreads;
   hassysthreads;
 }{
   reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
   skip;
   {
     bytecode;
   }{
     native;
   }
 }
*)

let _ =
  let main_thread = Thread.id (Thread.self ()) in
  Gc.Memprof.(start ~callstack_size:10 ~sampling_rate:1.
                { null_tracker with alloc_minor = fun _ ->
                      if Thread.id (Thread.self ()) <> main_thread then
                        Thread.exit ();
                      None });
  let t = Thread.create (fun () ->
      ignore (Sys.opaque_identity (ref 1));
      assert false) ()
  in
  Thread.join t;
  Gc.Memprof.stop ()

let _ =
  Gc.Memprof.(start ~callstack_size:10 ~sampling_rate:1.
    { null_tracker with alloc_minor = fun _ -> Thread.exit (); None });
  ignore (Sys.opaque_identity (ref 1));
  assert false