From 1e765a550f848d9ce37d36ee42e1c9b0680ae62f Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Fri, 31 Dec 2021 18:07:07 +0800 Subject: [PATCH] =?UTF-8?q?ft:=20=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dataType/fwQueue.erl | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/dataType/fwQueue.erl b/src/dataType/fwQueue.erl index 1fc1ce7..acf6ebe 100644 --- a/src/dataType/fwQueue.erl +++ b/src/dataType/fwQueue.erl @@ -33,22 +33,32 @@ ins(Name, Values) -> [ets:insert(Name, {erlang:unique_integer(), Value}) || Value <- Values], true. --spec outF(Name :: atom()) -> empty | Value :: term(). +-spec outF(Name :: atom() | ets:tid()) -> empty | Value :: term(). outF(Name) -> - case ets:first_take(Name) of - [] -> + case ets:first(Name) of + '$end_of_table' -> empty; - [{_, Value}] -> - Value + Key -> + case ets:take(Name, Key) of + [] -> + outF(Name); + [{_, Value}] -> + Value + end end. --spec outL(Name :: atom()) -> empty | Value :: term(). +-spec outL(Name :: atom() | ets:tid()) -> empty | Value :: term(). outL(Name) -> - case ets:last_take(Name) of - [] -> + case ets:last(Name) of + '$end_of_table' -> empty; - [{_, Value}] -> - Value + Key -> + case ets:take(Name, Key) of + [] -> + outL(Name); + [{_, Value}] -> + Value + end end. -spec clear(Name :: atom()) -> ok.