Skip to content

Commit 5fcefe4

Browse files
committed
Properly delete locked entries during crash
1 parent f54fb12 commit 5fcefe4

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

lib/mix/lib/mix/state.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ defmodule Mix.State do
153153
unlock(key_to_waiting, pid_to_key, key)
154154

155155
%{^key => {locked, waiting}} ->
156-
Map.put(key_to_waiting, key, {locked, List.keydelete(waiting, pid, 0)})
156+
waiting = :queue.delete_with(fn {qpid, _qref} -> qpid == pid end, waiting)
157+
Map.put(key_to_waiting, key, {locked, waiting})
157158
end
158159

159160
{:noreply, %{state | key_to_waiting: key_to_waiting, pid_to_key: pid_to_key}}

0 commit comments

Comments
 (0)