aboutsummaryrefslogtreecommitdiff
path: root/src/eco_proc.erl
diff options
context:
space:
mode:
authorNathan Lasseter <Nathan Lasseter nathan@bytemark.co.uk>2014-05-30 13:34:17 +0100
committerNathan Lasseter <Nathan Lasseter nathan@bytemark.co.uk>2014-05-30 13:34:17 +0100
commit08fecb93995728ab53d78beefc329331d79f303f (patch)
tree3ba80e9dede138ce108ad53183cecc47069c736e /src/eco_proc.erl
parent59cee25c7f863e76bc82cd58b33f6f3b4e13770c (diff)
Added directory structure and Makefile
Diffstat (limited to 'src/eco_proc.erl')
-rw-r--r--src/eco_proc.erl26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/eco_proc.erl b/src/eco_proc.erl
new file mode 100644
index 0000000..c179a26
--- /dev/null
+++ b/src/eco_proc.erl
@@ -0,0 +1,26 @@
+-module(eco_proc).
+-export([proc/6]).
+
+proc(Watcher, _, _, _, 0, _) ->
+ Watcher ! {died, self()};
+proc(Watcher, Gets, Puts, Pool, Life, MaxLife) ->
+ receive
+ {From, stop} ->
+ From ! {ok, stopped, self()},
+ Watcher ! {stopped, self()},
+ {ok, stopped};
+ {From, tick} ->
+ From ! {self(), tock},
+ Watcher ! {tick, self()},
+ Pool ! {self(), get, Gets},
+ receive
+ {ok, get, Gets} ->
+ Pool ! {self(), put, Puts},
+ receive
+ {ok, put, Puts} ->
+ proc(Watcher, Gets, Puts, Pool, MaxLife, MaxLife)
+ end;
+ {error, get, Gets} ->
+ proc(Watcher, Gets, Puts, Pool, Life - 1, MaxLife)
+ end
+ end.