diff options
author | Anders Svensson <[email protected]> | 2011-08-24 16:44:16 +0200 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2011-08-24 16:44:16 +0200 |
commit | 3536111957c809976ed3e7091e85960990be904d (patch) | |
tree | aafc4cf4f996ece272e6b9c3d2366061c34f08da /lib/percept/src | |
parent | a7c0e439ee84d25ce18f65959be06315063a7de8 (diff) | |
parent | 0c09797c725c98e5466bf6c575b7be4f2fc0e813 (diff) | |
download | otp-3536111957c809976ed3e7091e85960990be904d.tar.gz otp-3536111957c809976ed3e7091e85960990be904d.tar.bz2 otp-3536111957c809976ed3e7091e85960990be904d.zip |
Merge remote branch 'upstream/dev' into dev
Diffstat (limited to 'lib/percept/src')
-rw-r--r-- | lib/percept/src/percept_db.erl | 11 |
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]), |