File tree 1 file changed +12
-7
lines changed 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
14
14
old_leader = Process . group_leader ( )
15
15
Process . group_leader ( self ( ) , leader )
16
16
17
- evaluator? = ! ! Process . get ( :iex_evaluator )
18
- Process . put ( :iex_evaluator , true )
17
+ evaluator = Process . get ( :iex_evaluator )
18
+ Process . put ( :iex_evaluator , command )
19
19
20
20
state = loop_state ( server , IEx.History . init ( ) , opts )
21
21
command == :ack && :proc_lib . init_ack ( self ( ) )
@@ -25,11 +25,16 @@ defmodule IEx.Evaluator do
25
25
after
26
26
Process . group_leader ( self ( ) , old_leader )
27
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 )
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
33
38
end
34
39
35
40
:ok
You can’t perform that action at this time.
0 commit comments