From b0f638883289625f76248d982b4ac58e45e104b1 Mon Sep 17 00:00:00 2001 From: Felipe Herranz Date: Wed, 2 Sep 2015 12:03:32 +0200 Subject: [PATCH] open() now returns with all threads ALWAYS alive --- src/com/felhr/usbserial/UsbSerialDevice.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/com/felhr/usbserial/UsbSerialDevice.java b/src/com/felhr/usbserial/UsbSerialDevice.java index 8e233ed..83e9f28 100644 --- a/src/com/felhr/usbserial/UsbSerialDevice.java +++ b/src/com/felhr/usbserial/UsbSerialDevice.java @@ -44,16 +44,6 @@ public abstract class UsbSerialDevice implements UsbSerialInterface this.device = device; this.connection = connection; serialBuffer = new SerialBuffer(mr1Version); - if(mr1Version) - { - workerThread = new WorkerThread(); - workerThread.start(); - }else - { - readThread = new ReadThread(); - } - writeThread = new WriteThread(); - writeThread.start(); } public static UsbSerialDevice createUsbSerialDevice(UsbDevice device, UsbDeviceConnection connection) @@ -286,7 +276,7 @@ public abstract class UsbSerialDevice implements UsbSerialInterface { dataReceived = serialBuffer.getDataReceivedCompatible(numberBytes); - // FTDI devices reserves two first bytes of an IN endpoint with info about + // FTDI devices reserve two first bytes of an IN endpoint with info about // modem and Line. if(isFTDIDevice()) { @@ -352,10 +342,12 @@ public abstract class UsbSerialDevice implements UsbSerialInterface { workerThread = new WorkerThread(); workerThread.start(); + while(!workerThread.isAlive()){} // Busy waiting }else if(!mr1Version && readThread == null) { readThread = new ReadThread(); readThread.start(); + while(!readThread.isAlive()){} // Busy waiting } } @@ -375,6 +367,7 @@ public abstract class UsbSerialDevice implements UsbSerialInterface { writeThread = new WriteThread(); writeThread.start(); + while(!writeThread.isAlive()){} // Busy waiting } } }