aboutsummaryrefslogtreecommitdiffstats
path: root/lib/percept
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2011-08-25 10:58:33 +0200
committerHenrik Nord <[email protected]>2011-08-25 10:58:33 +0200
commit756a93ca2064b9e0eba3d82a7bd37aeae0f39be1 (patch)
treeffbbbfd2749a522c7b1f70ee4f7b1fa0a5e189f3 /lib/percept
parent48eb259aa2d6c7c5d1ddebbfbcefae5e3dafc49c (diff)
parentd48eaa0731017e5cdadca0af77ac14cd949b6c67 (diff)
downloadotp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.tar.gz
otp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.tar.bz2
otp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.zip
Merge branch 'dev' into major
Diffstat (limited to 'lib/percept')
-rw-r--r--lib/percept/src/percept_db.erl11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/percept/src/percept_db.erl b/lib/percept/src/percept_db.erl
index 52e9afb78f..61b68ce44f 100644
--- a/lib/percept/src/percept_db.erl
+++ b/lib/percept/src/percept_db.erl
@@ -92,7 +92,7 @@ restart(PerceptDB)->
stop_sync(PerceptDB),
do_start().
-%% @spec do_start(pid()) -> pid()
+%% @spec do_start() -> pid()
%% @private
%% @doc starts the percept database.
@@ -131,6 +131,7 @@ stop_sync(Pid)->
{'DOWN', MonitorRef, _Type, Pid, _Info}->
true
after ?STOP_TIMEOUT->
+ erlang:demonitor(MonitorRef, [flush]),
exit(Pid, kill)
end.
@@ -166,14 +167,14 @@ insert(Trace) ->
select(Query) ->
percept_db ! {select, self(), Query},
- receive Match -> Match end.
+ receive {result, Match} -> Match end.
%% @spec select(atom(), list()) -> Result
%% @equiv select({Table,Options})
select(Table, Options) ->
percept_db ! {select, self(), {Table, Options}},
- receive Match -> Match end.
+ receive {result, Match} -> Match end.
%% @spec consolidate() -> Result
%% @doc Checks timestamp and state-flow inconsistencies in the
@@ -213,7 +214,7 @@ loop_percept_db() ->
insert_trace(clean_trace(Trace)),
loop_percept_db();
{select, Pid, Query} ->
- Pid ! select_query(Query),
+ Pid ! {result, select_query(Query)},
loop_percept_db();
{action, stop} ->
stopped;
@@ -222,7 +223,7 @@ loop_percept_db() ->
loop_percept_db();
{operate, Pid, {Table, {Fun, Start}}} ->
Result = ets:foldl(Fun, Start, Table),
- Pid ! Result,
+ Pid ! {result, Result},
loop_percept_db();
Unhandled ->
io:format("loop_percept_db, unhandled query: ~p~n", [Unhandled]),