Browse Source

Use `lists:keytake` instead of `keymember` + `keydelete`

Sergey Prokhorov 2 years ago
parent
commit
29063646f9
1 changed files with 2 additions and 3 deletions
  1. 2 3
      src/pooler.erl

+ 2 - 3
src/pooler.erl

@@ -514,7 +514,7 @@ do_accept_member(
     Pool1 =
         #pool{starting_members = StartingMembers} =
         remove_stale_starting_members(Pool, StartingMembers0, StartTimeout),
-    case lists:keymember(StarterPid, 1, StartingMembers) of
+    case lists:keytake(StarterPid, 1, StartingMembers) of
         false ->
             %% A starter completed even though we invalidated the pid
             %% Ask the starter to kill the child and stop. In most cases, the
@@ -524,8 +524,7 @@ do_accept_member(
             %% In this case, we should cleanup.
             pooler_starter:stop_member_async(StarterPid),
             Pool1;
-        true ->
-            StartingMembers1 = lists:keydelete(StarterPid, 1, StartingMembers),
+        {value, _, StartingMembers1} ->
             MRef = erlang:monitor(process, Pid),
             Entry = {MRef, free, os:timestamp()},
             AllMembers1 = store_all_members(Pid, Entry, AllMembers),