diff options
Diffstat (limited to 'otherlibs/threads/Tests/testsieve.ml')
| -rw-r--r-- | otherlibs/threads/Tests/testsieve.ml | 42 |
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;; |
