diff options
Diffstat (limited to 'lib/irb/ext/multi-irb.rb')
-rw-r--r-- | lib/irb/ext/multi-irb.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/irb/ext/multi-irb.rb b/lib/irb/ext/multi-irb.rb index 7bb1a7cfab..0152d38ffd 100644 --- a/lib/irb/ext/multi-irb.rb +++ b/lib/irb/ext/multi-irb.rb @@ -172,12 +172,14 @@ module IRB ensure unless system_exit @JobManager.delete(irb) - if parent_thread.alive? - @JobManager.current_job = @JobManager.irb(parent_thread) - parent_thread.run - else - @JobManager.current_job = @JobManager.main_irb - @JobManager.main_thread.run + if @JobManager.current_job == irb + if parent_thread.alive? + @JobManager.current_job = @JobManager.irb(parent_thread) + parent_thread.run + else + @JobManager.current_job = @JobManager.main_irb + @JobManager.main_thread.run + end end end end |