Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- defmodule PingPong do
- def start do
- ping_process = spawn(Ping, :loop, [])
- pong_process = spawn(Pong, :loop, [])
- send(ping_process, {:pong, pong_process})
- end
- def ping do
- Ping
- end
- end
- defmodule Ping do
- def loop(n \\ []) do
- receive do
- {:pong, sender_pid} ->
- :timer.sleep(1_000)
- send(sender_pid, {:ping, self()})
- IO.puts("ping ----")
- loop()
- _ ->
- loop()
- end
- end
- end
- defmodule Pong do
- def loop(n \\ []) do
- receive do
- {:ping, sender_pid} ->
- :timer.sleep(1_000)
- send(sender_pid, {:pong, self()})
- IO.puts("---- pong")
- loop()
- _ ->
- loop()
- end
- end
- end
Add Comment
Please, Sign In to add comment