Skip to content

Commit e1f10a9

Browse files
author
José Valim
committed
Ensure nested evaluator entries exit
1 parent 37321cd commit e1f10a9

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

lib/iex/lib/iex/evaluator.ex

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,25 @@ defmodule IEx.Evaluator do
1414
old_leader = Process.group_leader
1515
Process.group_leader(self(), leader)
1616

17+
evaluator? = !!Process.get(:iex_evaluator)
18+
Process.put(:iex_evaluator, true)
19+
1720
state = loop_state(server, IEx.History.init, opts)
1821
command == :ack && :proc_lib.init_ack(self())
1922

2023
try do
2124
loop(state)
2225
after
2326
Process.group_leader(self(), old_leader)
27+
28+
# If there was an evaluator, nest failures.
29+
if evaluator? do
30+
send self(), {:done, server}
31+
else
32+
Process.delete(:iex_evaluator)
33+
end
34+
35+
:ok
2436
end
2537
end
2638

0 commit comments

Comments
 (0)