Prevent using multi-irb and activating debugger at the same time
Multi-irb makes a few assumptions:
IRB will manage all threads that host sub-irb sessions
All IRB sessions will be run on the threads created by IRB itself
However, when using the debugger these assumptions are broken:
debug will freeze ALL threads when it suspends the session (e.g. when hitting a breakpoint, or performing step-debugging).
Since the irb-debug integration runs IRB as the debugger's interface, it will be run on the debugger's thread, which is not managed by IRB.
So we should prevent the 2 features from being used at the same time. To do that, we check if the other feature is already activated when executing the commands that would activate the other feature.
[ruby/irb] Support seamless integration with ruby/debug
(https://github.com/ruby/irb/pull/575)
Support native integration with ruby/debug
Prevent using multi-irb and activating debugger at the same time
Multi-irb makes a few assumptions:
However, when using the debugger these assumptions are broken:
debugwill freeze ALL threads when it suspends the session (e.g. whenhitting a breakpoint, or performing step-debugging).
it will be run on the debugger's thread, which is not managed by IRB.
So we should prevent the 2 features from being used at the same time.
To do that, we check if the other feature is already activated when
executing the commands that would activate the other feature.
https://github.com/ruby/irb/commit/d8fb3246be