PY-31063 "Run with Console" file is not executed on remote interpreter if there is big delay

Remove timeout for code execution and set process cancellable
This commit is contained in:
Elizaveta Shashkova
2018-08-13 14:46:22 +03:00
parent 6fb27b8741
commit 82e5fe2c9b
@@ -15,7 +15,6 @@
*/
package com.jetbrains.python.console;
import com.intellij.codeInsight.hint.HintManager;
import com.intellij.execution.console.LanguageConsoleImpl;
import com.intellij.execution.filters.OpenFileHyperlinkInfo;
import com.intellij.execution.impl.ConsoleViewUtil;
@@ -59,7 +58,6 @@ import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.ui.JBSplitter;
import com.intellij.util.TimeoutUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.xdebugger.impl.frame.XStandaloneVariablesView;
import com.jetbrains.python.PythonLanguage;
import com.jetbrains.python.console.completion.PythonConsoleAutopopupBlockingHandler;
@@ -212,22 +210,13 @@ public class PythonConsoleView extends LanguageConsoleImpl implements Observable
myInitialized.doWhenDone(
() -> {
if (code != null) {
ProgressManager.getInstance().run(new Task.Backgroundable(null, "Executing Code in Console...", false) {
ProgressManager.getInstance().run(new Task.Backgroundable(null, "Executing Code in Console...", true) {
@Override
public void run(@NotNull final ProgressIndicator indicator) {
long time = System.currentTimeMillis();
while (!myExecuteActionHandler.isEnabled() || !myExecuteActionHandler.canExecuteNow()) {
if (indicator.isCanceled()) {
break;
}
if (System.currentTimeMillis() - time > 1000) {
if (editor != null) {
UIUtil.invokeLaterIfNeeded(
() -> HintManager.getInstance()
.showErrorHint(editor, myExecuteActionHandler.getCantExecuteMessage()));
}
return;
}
TimeoutUtil.sleep(300);
}
if (!indicator.isCanceled()) {