From 6c5cd74b33912054c7c35ddf82da98ba27aa459e Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 14 Feb 2017 18:27:38 +0300 Subject: [PATCH] another attempt to speedup debugger tests --- .../engine/DebuggerManagerThreadImpl.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.java index 52f48bc28bf4..0d0a8de92f68 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.java @@ -55,19 +55,6 @@ public class DebuggerManagerThreadImpl extends InvokeAndWaitThread future) { - try { - LOG.debug("Waiting for " + future); - future.get(1, TimeUnit.MINUTES); - } - catch (InterruptedException | ExecutionException e) { - throw new RuntimeException(e); - } - catch (TimeoutException e) { - throw new RuntimeException("Termination request is still pending", e); - } - } - @TestOnly public static DebuggerManagerThreadImpl createTestInstance(@NotNull Disposable parent, Project project) { return new DebuggerManagerThreadImpl(parent, project); @@ -147,11 +134,18 @@ public class DebuggerManagerThreadImpl extends InvokeAndWaitThread waitForTerminateFutureToComplete(future)); + Disposer.register(myProject, () -> { + if (!future.cancel(true)) { + WorkerThreadRequest request = getCurrentThreadRequest(); + if (request != null) { + request.requestStop(); + } + } + // else scheduled future was de-scheduled successfully before starting + }); } } - @Override public void processEvent(@NotNull DebuggerCommandImpl managerCommand) { assertIsManagerThread();