summaryrefslogtreecommitdiff
path: root/src/akk.erl
blob: 902249f4180c1fe0982ca022e1bd54b11b684bd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-module(akk).

-export([new/0, add/1, flush/0, collect/1]).

new() ->
	register(?MODULE, spawn(?MODULE, collect, [[]])).

add(E) ->
	?MODULE ! {add, E}.

flush() ->
	?MODULE ! {flush, self()},
	receive
		L -> L
	end.

collect(L) ->
	receive
		{add, E} ->
			collect(L ++ [E]);
		{flush, Pid} ->
			Pid ! L
	end.