From af9b505e87b32bcd1e7e32f3748298b903c1e1be Mon Sep 17 00:00:00 2001 From: Peter Osterlund Date: Mon, 19 Dec 2016 23:02:13 +0100 Subject: [PATCH] DroidFish: Better handling of large amounts of data from the engine. --- .../petero/droidfish/engine/DroidComputerPlayer.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/DroidFish/src/org/petero/droidfish/engine/DroidComputerPlayer.java b/DroidFish/src/org/petero/droidfish/engine/DroidComputerPlayer.java index d538902..bcb874c 100644 --- a/DroidFish/src/org/petero/droidfish/engine/DroidComputerPlayer.java +++ b/DroidFish/src/org/petero/droidfish/engine/DroidComputerPlayer.java @@ -687,6 +687,16 @@ public class DroidComputerPlayer { if (Thread.currentThread().isInterrupted()) return; String s = uci.readLineFromEngine(timeout); + long t0 = System.currentTimeMillis(); + while (s != null && !s.isEmpty()) { + if (Thread.currentThread().isInterrupted()) + return; + processEngineOutput(uci, s); + s = uci.readLineFromEngine(1); + long t1 = System.currentTimeMillis(); + if (t1 - t0 >= 1000) + break; + } if ((s == null) || Thread.currentThread().isInterrupted()) return; processEngineOutput(uci, s); @@ -1041,6 +1051,7 @@ public class DroidComputerPlayer { listener.notifyStats(id, statNodes, statNps, statTBHits, statHash, statTime); statsModified = false; } + lastGUIUpdate = System.currentTimeMillis(); } private final static void myAssert(boolean b) {