# HG changeset patch # User Carl Byington # Date 1405016746 25200 # Node ID 766176d84e734915f5e80330497895facfc69c90 # Parent 2626bf2a8cea0f45beda563df4fdea71a72fafba delay testChanged() by 10ms for async transports diff -r 2626bf2a8cea -r 766176d84e73 src/com/five_ten_sg/connectbot/service/Relay.java --- a/src/com/five_ten_sg/connectbot/service/Relay.java Thu Jul 10 10:44:09 2014 -0700 +++ b/src/com/five_ten_sg/connectbot/service/Relay.java Thu Jul 10 11:25:46 2014 -0700 @@ -111,11 +111,7 @@ int offset; int charWidth; Timer timer = new Timer("relay.blocker", true); - TimerTask task = new TimerTask() { - public void run() { - buffer.testChanged(); - } - }; + TimerTask task = null; try { while (true) { @@ -124,11 +120,20 @@ offset = byteBuffer.arrayOffset() + byteBuffer.limit(); if (transport.willBlock()) { + task = new TimerTask() { + public void run() { + buffer.testChanged(); + } + }; timer.schedule(task, 10); // 10 ms delay } bytesRead = transport.read(byteArray, offset, bytesToRead); - task.cancel(); + + if (task != null) { + task.cancel(); + task = null; + } if (bytesRead > 0) { byteBuffer.limit(byteBuffer.limit() + bytesRead);