/*------------------------------------------------------------------------- | rxtx is a native interface to serial ports in java. | Copyright 1997-2004 by Trent Jarvi taj@parcelfarce.linux.theplanet.co.uk | | This library is free software; you can redistribute it and/or | modify it under the terms of the GNU Library General Public | License as published by the Free Software Foundation; either | version 2 of the License, or (at your option) any later version. | | This library is distributed in the hope that it will be useful, | but WITHOUT ANY WARRANTY; without even the implied warranty of | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | Library General Public License for more details. | | You should have received a copy of the GNU Library General Public | License along with this library; if not, write to the Free | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --------------------------------------------------------------------------*/ /* test : TestMonitorThread Author : Trent Jarvi added : Sat Oct 13 17:45:31 MDT 2001 Problem: Monitor Thread didnt go away in the past. This makes sure the thread does exit and is GC's. You can watch the threads in a native threads jvm with top. todo : There are still some issues with the way BlackBox open/closes the ports and the removal of the eventListener. */ import gnu.io.*; import java.util.*; public class TestMonitorThread implements SerialPortEventListener { public TestMonitorThread() { CommPortIdentifier cpi; Enumeration ports; SerialPort port = null; Date d = new Date(); long result, t1 = d.getTime(), t2 = d.getTime(); ports = CommPortIdentifier.getPortIdentifiers(); while ( ports.hasMoreElements() ) { cpi = (CommPortIdentifier) ports.nextElement(); if ( cpi.getPortType() == CommPortIdentifier.PORT_SERIAL ) { if ( cpi.getName().equals( "/dev/ttyS0" ) ) { try { port = (SerialPort) cpi.open("TestMonitorThread", 2000); } catch (PortInUseException e) {} break; } } } for( int i=0;i<30;i++ ) { try { port.addEventListener(this); } catch (TooManyListenersException e ) { e.printStackTrace(); } t2 = new Date().getTime(); port.removeEventListener(); System.out.println( t2 - t1 ); t1 = t2; } port.close(); } public static void main( String[] args ) { System.out.println(">my TestMonitorThread"); TestMonitorThread thisTestMonitorThread = new TestMonitorThread(); System.out.println("