Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(semaphore).
- -compile(export_all).
- start()->
- register(semaphore, spawn(?MODULE, init, [])).
- p(Lock) ->
- semaphore ! {p, Lock, self()},
- receive
- go ->
- go
- end.
- v(Lock) ->
- mutex ! {v, Lock, self()},
- ok.
- init() ->
- unlocked(Lock).
- unlocked(Lock) ->
- receive {p, From} ->
- From ! go,
- locked(Lock,From)
- end.
- locked(Lock, From) ->
- receive
- {v, From} ->
- unlocked(Lock)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement