summaryrefslogtreecommitdiff
path: root/otherlibs/threads/Tests/testsieve.ml
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/threads/Tests/testsieve.ml')
-rw-r--r--otherlibs/threads/Tests/testsieve.ml42
1 files changed, 0 insertions, 42 deletions
diff --git a/otherlibs/threads/Tests/testsieve.ml b/otherlibs/threads/Tests/testsieve.ml
deleted file mode 100644
index 6079d8a8eb..0000000000
--- a/otherlibs/threads/Tests/testsieve.ml
+++ /dev/null
@@ -1,42 +0,0 @@
-let sieve primes=
- Event.sync (Event.send primes 0);
- Event.sync (Event.send primes 1);
- Event.sync (Event.send primes 2);
- let integers = Event.new_channel () in
- let rec enumerate n=
- Event.sync (Event.send integers n);
- enumerate (n + 2)
- and filter inpout =
- let n = Event.sync (Event.receive inpout)
- (* On prepare le terrain pour l'appel recursif *)
- and output = Event.new_channel () in
- (* Celui qui etait en tete du crible est premier *)
- Event.sync (Event.send primes n);
- Thread.create filter output;
- (* On elimine de la sortie ceux qui sont des multiples de n *)
- while true do
- let m = Event.sync (Event.receive inpout) in
- (* print_int n; print_string ": "; print_int m; print_newline(); *)
- if (m mod n) = 0
- then ()
- else ((Event.sync (Event.send output m));())
- done in
- Thread.create filter integers;
- Thread.create enumerate 3
-
-let premiers = Event.new_channel ()
-
-let main _ =
- Thread.create sieve premiers;
- while true do
- for i = 1 to 100 do
- let n = Event.sync (Event.receive premiers) in
- print_int n; print_newline()
- done;
- exit 0
- done
-
-
-let _ =
- try main ()
- with _ -> exit 0;;