diff options
Diffstat (limited to 'java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java')
-rw-r--r-- | java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java b/java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java index ad2c881d1336..75897417bd2e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/JavaBreakpointHandler.java @@ -49,13 +49,17 @@ public class JavaBreakpointHandler extends XBreakpointHandler { if (javaBreakpoint != null) { final Breakpoint bpt = javaBreakpoint; BreakpointManager.addBreakpoint(bpt); - // must use invoke to stay in the current request, - // otherwise dependent breakpoints do not get enabled on not-suspending parents hit - myProcess.getManagerThread().invoke(new DebuggerCommandImpl() { + // use schedule not to block initBreakpoints + myProcess.getManagerThread().schedule(new DebuggerCommandImpl() { @Override protected void action() throws Exception { bpt.createRequest(myProcess); } + + @Override + public Priority getPriority() { + return Priority.HIGH; + } }); } } @@ -64,12 +68,17 @@ public class JavaBreakpointHandler extends XBreakpointHandler { public void unregisterBreakpoint(@NotNull final XBreakpoint breakpoint, boolean temporary) { final Breakpoint javaBreakpoint = BreakpointManager.getJavaBreakpoint(breakpoint); if (javaBreakpoint != null) { - // must use invoke to stay in the current request, see comment in registerBreakpoint - myProcess.getManagerThread().invoke(new DebuggerCommandImpl() { + // use schedule not to block initBreakpoints + myProcess.getManagerThread().schedule(new DebuggerCommandImpl() { @Override protected void action() throws Exception { javaBreakpoint.delete(); } + + @Override + public Priority getPriority() { + return Priority.HIGH; + } }); } } |