Skip to content

Commit de9eefb

Browse files
committed
Simplify compiler heuristic
1 parent 3f39699 commit de9eefb

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

lib/elixir/lib/kernel/parallel_compiler.ex

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,7 @@ defmodule Kernel.ParallelCompiler do
154154
entries
155155
|> Enum.group_by(&elem(&1, 0), &elem(&1, 1))
156156
|> Enum.sort_by(&length(elem(&1, 1)))
157-
|> Enum.at(0, {__MODULE__, []})
158-
|> elem(1)
157+
|> Enum.find_value([], &elem(&1, 1))
159158

160159
case entries do
161160
[] -> handle_deadlock(waiting, queued)
@@ -206,11 +205,9 @@ defmodule Kernel.ParallelCompiler do
206205
spawn_compilers(%{state | entries: available ++ entries, result: [{:module, module} | result]})
207206

208207
{:waiting, kind, child, ref, on, defining} ->
209-
defined = fn {k, m} -> on == m and k == kind end
210-
211208
# Oops, we already got it, do not put it on waiting.
212209
waiting =
213-
if :lists.any(defined, result) do
210+
if :lists.any(&match?({^kind, ^on}, &1), result) do
214211
send child, {ref, :found}
215212
waiting
216213
else

0 commit comments

Comments
 (0)