File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -14,8 +14,8 @@ 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 )
17+ evaluator = Process . get ( :iex_evaluator )
18+ Process . put ( :iex_evaluator , command )
1919
2020 state = loop_state ( server , IEx.History . init ( ) , opts )
2121 command == :ack && :proc_lib . init_ack ( self ( ) )
@@ -25,11 +25,16 @@ defmodule IEx.Evaluator do
2525 after
2626 Process . group_leader ( self ( ) , old_leader )
2727
28- # If there was an evaluator, nest failures.
29- if evaluator? do
30- send ( self ( ) , { :done , server } )
31- else
32- Process . delete ( :iex_evaluator )
28+ cond do
29+ is_nil ( evaluator ) ->
30+ Process . delete ( :iex_evaluator )
31+
32+ evaluator != :ack ->
33+ # Ensure propagation to non-root level evaluators
34+ send ( self ( ) , { :done , server } )
35+
36+ true ->
37+ :ok
3338 end
3439
3540 :ok
You can’t perform that action at this time.
0 commit comments