Elixir: Processes Talking Amongst Themselves 
angelcool@fedora-laptop$date
Tue Apr 2 11:31:57 AM PDT 2024
angelcool@fedora-laptop$mix new process-demo --app process_a
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating lib
* creating lib/process_a.ex
* creating test
* creating test/test_helper.exs
* creating test/process_a_test.exs

Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:

cd process-demo
mix test

Run "mix help" for more commands.
angelcool@fedora-laptop$
angelcool@fedora-laptop$cd process-demo/
angelcool@fedora-laptop$ls -l
total 8
drwxr-xr-x. 1 angelcool angelcool 24 Apr 2 11:31 lib
-rw-r--r--. 1 angelcool angelcool 575 Apr 2 11:31 mix.exs
-rw-r--r--. 1 angelcool angelcool 476 Apr 2 11:31 README.md
drwxr-xr-x. 1 angelcool angelcool 66 Apr 2 11:31 test
angelcool@fedora-laptop$
angelcool@fedora-laptop$cat lib/process_a.ex
defmodule ProcessA do
def receiverA(count) do
receive do
{from, message} -> send(from, {"Greetings from ProcessA!.", message})
receiverA(count+1)
end
end
end
angelcool@fedora-laptop$cat lib/process_b.ex
defmodule ProcessB do
def initialize do
pid_A = spawn(ProcessA, :receiverA, [1])
recieverB(pid_A)
end

def recieverB(pid_A) do
receive do
{message} ->
send(pid_A, {self(), message})
recieverB(pid_A)
{response, originalmessage} ->
IO.puts("Response: #{response}")
IO.puts("Original Message: #{originalmessage}")
recieverB(pid_A)
end
end
end
angelcool@fedora-laptop$
angelcool@fedora-laptop$iex --version
IEx 1.15.7 (compiled with Erlang/OTP 26)
angelcool@fedora-laptop$
angelcool@fedora-laptop$mix phx.new --version
Phoenix installer v1.7.11
angelcool@fedora-laptop$
angelcool@fedora-laptop$iex -S mix
Compiling 2 files (.ex)
Generated process_a app
Erlang/OTP 26 [erts-14.2.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]

Interactive Elixir (1.15.7) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> pid_B = spawn(ProcessB, :initialize, [])
#PID<0.166.0>
iex(2)> send(pid_B, {"Hi! This is a message from process B!"})
Response: Greetings from ProcessA!.
{"Hi! This is a message from process B!"}
Original Message: Hi! This is a message from process B!
iex(3)>


Comments
Comments are not available for this entry.
2024 By Angel Cool