diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2024-02-23 07:08:18 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2024-02-23 07:08:18 +0100 |
commit | 5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e (patch) | |
tree | 982ca2e7f9ac4e8c350dfb5c4f60bcfdfff5afaf /learn-you-some-erlang/multiproc.erl | |
parent | 05ae56e5e89abf2993f84e6d52b250131f247c35 (diff) | |
download | erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.gz erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.bz2 erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.xz erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.zip |
wip
Diffstat (limited to 'learn-you-some-erlang/multiproc.erl')
-rw-r--r-- | learn-you-some-erlang/multiproc.erl | 39 |
1 files changed, 39 insertions, 0 deletions
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. |