summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml')
-rw-r--r--ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml20
1 files changed, 20 insertions, 0 deletions
diff --git a/ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml b/ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml
new file mode 100644
index 0000000000..3acd9c6089
--- /dev/null
+++ b/ocaml-binary-annot/testsuite/tests/lib-threads/test4.ml
@@ -0,0 +1,20 @@
+let output_lock = Mutex.create()
+
+let rec fib n = if n <= 2 then 1 else fib(n-1) + fib(n-2)
+
+let fibtask n =
+ while true do
+ Mutex.lock output_lock;
+ print_int(fib n); print_newline();
+ Mutex.unlock output_lock
+ done
+
+let _ =
+ Thread.create fibtask 28;
+ Thread.delay 1.0;
+ while true do
+ let l = read_line () in
+ Mutex.lock output_lock;
+ print_string ">> "; print_string l; print_newline();
+ Mutex.unlock output_lock
+ done