summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ao-tools/altosui/AltosSerial.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/ao-tools/altosui/AltosSerial.java b/ao-tools/altosui/AltosSerial.java
index ab74486b..8a6ad05e 100644
--- a/ao-tools/altosui/AltosSerial.java
+++ b/ao-tools/altosui/AltosSerial.java
@@ -114,16 +114,20 @@ public class AltosSerial implements Runnable {
public void flush_input() {
flush_output();
- try {
- Thread.sleep(200);
- } catch (InterruptedException ie) {
- }
- synchronized(this) {
- if (!"VERSION".startsWith(line) &&
- !line.startsWith("VERSION"))
- line = "";
- reply_queue.clear();
- }
+ boolean got_some;
+ do {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ie) {
+ }
+ got_some = !reply_queue.isEmpty();
+ synchronized(this) {
+ if (!"VERSION".startsWith(line) &&
+ !line.startsWith("VERSION"))
+ line = "";
+ reply_queue.clear();
+ }
+ } while (got_some);
}
public String get_reply() throws InterruptedException {