From bc32cb4c6fcbcea2a5c4b7813daa29d61643457c Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 8 Aug 2016 01:11:33 -0400 Subject: [PATCH] Trying to make readline timeout --- .../scala/sbt/internal/util/LineReader.scala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala index c05a7427d..eb838824f 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala @@ -140,6 +140,22 @@ private[sbt] class InputStreamWrapper(is: InputStream, val poll: Duration) exten Thread.sleep(poll.toMillis) read() } + + @tailrec + final override def read(b: Array[Byte]): Int = + if (is.available() != 0) is.read(b) + else { + Thread.sleep(poll.toMillis) + read(b) + } + + @tailrec + final override def read(b: Array[Byte], off: Int, len: Int): Int = + if (is.available() != 0) is.read(b, off, len) + else { + Thread.sleep(poll.toMillis) + read(b, off, len) + } } trait LineReader {