From 5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 23 Feb 2024 07:08:18 +0100 Subject: wip --- learn-you-some-erlang/multiproc.erl | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 learn-you-some-erlang/multiproc.erl (limited to 'learn-you-some-erlang/multiproc.erl') diff --git a/learn-you-some-erlang/multiproc.erl b/learn-you-some-erlang/multiproc.erl new file mode 100644 index 0000000..abddaf9 --- /dev/null +++ b/learn-you-some-erlang/multiproc.erl @@ -0,0 +1,39 @@ +-module(multiproc). +-compile([export_all]). + +sleep(T) -> + receive + after T -> ok + end. + +flush() -> + receive + _ -> flush() + after 0 -> + ok + end. + +important() -> + receive + {Priority, Message} when Priority > 10 -> + [Message | important()] + after 0 -> + normal() + end. + +normal() -> + receive + {_, Message} -> + [Message | normal()] + after 0 -> + [] + end. + +%% optimized in R14A +optimized(Pid) -> + Ref = make_ref(), + Pid ! {self(), Ref, hello}, + receive + {Pid, Ref, Msg} -> + io:format("~p~n", [Msg]) + end. -- cgit v1.2.3