Guest User

Untitled

a guest
Jun 8th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.48 KB | None | 0 0
  1. -module(producer).
  2. -export([start/1, stop/0, crash/0]).
  3.  
  4. start(Delay) ->
  5.     register(producer, spawn(fun() -> init(Delay) end)).
  6.  
  7. stop() ->
  8.     producer ! stop.
  9.  
  10. crash() ->
  11.     producer ! crash.
  12.  
  13. init(Delay) ->
  14.     receive
  15.         {hello, Consumer} ->
  16.             producer(Consumer, 0, Delay);
  17.         stop ->
  18.             ok
  19.     end.
  20.  
  21. producer(Consumer, N, Delay) ->
  22.     receive
  23.         stop ->
  24.             Consumer ! bye;
  25.         crash ->
  26.             42/0
  27.     after Delay ->
  28.             Consumer ! {ping, N},
  29.             producer(Consumer, N+1, Delay)
  30.     end.
Add Comment
Please, Sign In to add comment