mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
33 lines
668 B
OCaml
Executable file
33 lines
668 B
OCaml
Executable file
#!/usr/bin/env ocaml
|
|
#use "tests/quick/.common.ml";;
|
|
#load "containers.cma";;
|
|
#require "lwt.unix";;
|
|
#load "containers_misc.cma";;
|
|
#load "containers_lwt.cma";;
|
|
|
|
let (>>=) = Lwt.(>>=)
|
|
|
|
module A = Containers_lwt.Lwt_actor
|
|
|
|
let a = A.spawn
|
|
(fun _ (`Ping sender) ->
|
|
Lwt_io.printl "ping!" >>= fun () ->
|
|
Lwt_unix.sleep 1. >>= fun () ->
|
|
A.send sender `Pong
|
|
)
|
|
|
|
let b = A.spawn
|
|
(fun self -> function
|
|
| `Pong
|
|
| `Start ->
|
|
Lwt_io.printl "pong!" >>= fun () ->
|
|
Lwt_unix.sleep 1. >>= fun () ->
|
|
A.send a (`Ping self)
|
|
)
|
|
|
|
let () = Lwt_main.run (
|
|
Lwt_io.printl "start" >>= fun () ->
|
|
A.send b `Start >>= fun () ->
|
|
A.wait_all ()
|
|
)
|
|
|