# HG changeset patch # User Carl Byington # Date 1403067713 25200 # Node ID 1a34365fab9be5618a628b0226699230b93af0ed # Parent 586b2eedb0d576f50ed4e9b3ac647732faa6c14a# Parent 6802f1cd1add7602271b6924c5d28f8986c54114 merge diff -r 586b2eedb0d5 -r 1a34365fab9b src/com/five_ten_sg/connectbot/service/TerminalMonitor.java --- a/src/com/five_ten_sg/connectbot/service/TerminalMonitor.java Mon Jun 16 18:02:30 2014 -0700 +++ b/src/com/five_ten_sg/connectbot/service/TerminalMonitor.java Tue Jun 17 22:01:53 2014 -0700 @@ -361,12 +361,12 @@ public synchronized void setField(int l, int c, char[] data, int offset) { Log.i(TAG, "setField()"); - byte[] b = new byte[data.length - offset]; + char[] da = new char[data.length - offset]; int i; - for (i=0; i queue, byte[] init) { + public DataStreamProducer(tnvt vt, BufferedInputStream bin, BlockingQueue queue, byte[] init) { this.bin = bin; this.vt = vt; - this.buffer = buffer; baosin = new ByteArrayOutputStream(); dsq = queue; abyte2 = init; @@ -167,7 +163,6 @@ int i = 0; while(!done) { - if (bin.available() == 0) buffer.testChanged(); i = bin.read(); // WVL - LDC : 16/07/2003 : TR.000345 @@ -355,4 +350,4 @@ // System.out.println(i + ">" + shit[i] + "< hex >" + Integer.toHexString((shit[i] & 0xff))); // } -} \ No newline at end of file +} diff -r 586b2eedb0d5 -r 1a34365fab9b src/org/tn5250j/framework/tn5250/tnvt.java --- a/src/org/tn5250j/framework/tn5250/tnvt.java Mon Jun 16 18:02:30 2014 -0700 +++ b/src/org/tn5250j/framework/tn5250/tnvt.java Tue Jun 17 22:01:53 2014 -0700 @@ -77,7 +77,7 @@ import java.util.Properties; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; - +import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLSocket; import android.content.Intent; @@ -140,6 +140,7 @@ private boolean cursorOn = false; private String hostname = ""; private int port = 23; + private vt320 buffer; private boolean connected = false; private boolean support132 = true; private ByteArrayOutputStream baosp = null; @@ -260,6 +261,7 @@ try { this.hostname = hostname; this.port = port; + this.buffer = buffer; try { screen52.getOIA().setInputInhibited(ScreenOIA.INPUTINHIBITED_SYSTEM_WAIT, @@ -298,7 +300,7 @@ } - producer = new DataStreamProducer(this, bin, buffer, dsq, abyte0); + producer = new DataStreamProducer(this, bin, dsq, abyte0); pthread = new Thread(producer); // pthread.setPriority(pthread.MIN_PRIORITY); pthread.setPriority(Thread.NORM_PRIORITY); @@ -986,7 +988,12 @@ while (keepTrucking) { try { - bk.initialize((byte[]) dsq.take()); + Object e = dsq.poll(0L, TimeUnit.SECONDS); + if (e == null) { + buffer.testChanged(); + e = dsq.take(); + }; + bk.initialize((byte[])e); } catch (InterruptedException ie) { Log.w(TAG," vt thread interrupted and stopping "); keepTrucking = false;