From 0f61ebb9ac6d4907067f7400a910a186ce506964 Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Wed, 10 Dec 2014 21:35:19 +0100 Subject: [PATCH] Registry option for blocking output read. --- platform/util/resources/misc/registry.properties | 1 + .../com/intellij/execution/process/BaseOSProcessHandler.java | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index 3ecf21d7ff54..42d0272ef135 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -412,6 +412,7 @@ editor.injected.highlighting.enabled=true editor.injected.highlighting.enabled.description=Disables injected fragments highlighting (requires project reopening) run.processes.with.pty=false +output.reader.blocking.mode=false ide.certificate.manager=true diff --git a/platform/util/src/com/intellij/execution/process/BaseOSProcessHandler.java b/platform/util/src/com/intellij/execution/process/BaseOSProcessHandler.java index 3156819bd7b6..bee75069b06b 100644 --- a/platform/util/src/com/intellij/execution/process/BaseOSProcessHandler.java +++ b/platform/util/src/com/intellij/execution/process/BaseOSProcessHandler.java @@ -18,6 +18,7 @@ package com.intellij.execution.process; import com.intellij.execution.TaskExecutor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Key; +import com.intellij.openapi.util.registry.Registry; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.Consumer; import com.intellij.util.io.BaseDataReader; @@ -71,10 +72,11 @@ public class BaseOSProcessHandler extends ProcessHandler implements TaskExecutor /** * Override this method to read process output and error streams in blocking mode + * * @return true to read non-blocking but sleeping, false for blocking read */ protected boolean useNonBlockingRead() { - return true; + return !Registry.is("output.reader.blocking.mode", false); } protected boolean processHasSeparateErrorStream() {