aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_client_state.erl9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mod_client_state.erl b/src/mod_client_state.erl
index d38de6832..1243e7bf2 100644
--- a/src/mod_client_state.erl
+++ b/src/mod_client_state.erl
@@ -359,11 +359,12 @@ queue_in(Key, Type, Val, {N, Seq, Q}) ->
-spec queue_take(term(), csi_queue()) -> {list(), csi_queue()} | error.
queue_take(Key, {N, Seq, Q}) ->
- case maps:take(Key, Q) of
- {TypeVals, Q1} ->
- {lists:keysort(2, TypeVals), {N-length(TypeVals), Seq, Q1}};
+ case maps:get(Key, Q, error) of
error ->
- error
+ error;
+ TypeVals ->
+ Q1 = maps:remove(Key, Q),
+ {lists:keysort(2, TypeVals), {N-length(TypeVals), Seq, Q1}}
end.
-spec queue_len(csi_queue()) -> non_neg_integer().