Skip to content

Instantly share code, notes, and snippets.

@cprieto
Last active February 12, 2019 21:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cprieto/44c6569531762f9aa8f4083d6cfc5cf6 to your computer and use it in GitHub Desktop.
Save cprieto/44c6569531762f9aa8f4083d6cfc5cf6 to your computer and use it in GitHub Desktop.
defmodule SpawnEx1 do
import :timer, only: [sleep: 1]
def greet(pid) do
send pid, {:ok, "I'm alive"}
exit(:dead)
end
def process_messages() do
receive do
{:ok, message} ->
IO.puts "I got #{message}"
process_messages()
end
end
def run do
me = self()
spawn_link(SpawnEx1, :greet, [me])
sleep 500
process_messages()
end
end
SpawnEx1.run
defmodule SpawnEx2 do
import :timer, only: [sleep: 1]
def greet(pid) do
send pid, {:ok, "I'm alive"}
raise "I am dead"
end
def process_messages() do
receive do
{:ok, message} ->
IO.puts "I got #{message}"
process_messages()
end
end
def run do
me = self()
spawn_link(SpawnEx2, :greet, [me])
sleep 500
process_messages()
end
end
SpawnEx2.run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment