System.out.println(System.currentTimeMillis() + ": " + "MonThread is still alive!");
z.reportln( "	MonThread is still alive!");
	public void removeEventListener()	{		if (debug)			System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:removeEventListener()");		waitForTheNativeCodeSilly();		//if( monThread != null && monThread.isAlive() )		if( monThreadisInterrupted == true )		{			System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:removeEventListener() already interrupted");			monThread = null;			SPEventListener = null;			Runtime.getRuntime().gc();			return;		}		else if( monThread != null && monThread.isAlive() )		{			if (debug)				System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:Interrupt=true");			monThreadisInterrupted=true;			/*			   Notify all threads in this PID that something is up			   They will call back to see if its their thread			   using isInterrupted().			*/			MonitorThreadCloseLock = true;			if (debug)				System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:calling interruptEventLoop");			interruptEventLoop( );			if (debug)				System.out.print("RXTXPort:waiting on closelock");			while( MonitorThreadCloseLock )			{				if (debug)					System.out.print(".");				try {					Thread.sleep(100);				} catch( Exception e ) {}			}			if (debug)				System.out.println();			if (debug)				System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:calling monThread.join()");			try {				monThread.join(1000);			} catch (Exception ex) {				/* yikes */				ex.printStackTrace();			}			if (debug)				System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:waiting on isAlive()");			while( monThread.isAlive() )			{				if ( debug )					System.out.println(System.currentTimeMillis() + ": " + "MonThread is still alive!");				try {					monThread.join(1000);					Thread.sleep( 1000 );				} catch( Exception e ){} 				monThread.stop();			}					}		if (debug)			System.out.println(System.currentTimeMillis() + ": " + "RXTXPort:calling gc()");		monThread = null;		SPEventListener = null;		Runtime.getRuntime().gc();		MonitorThreadLock = false;		MonitorThreadAlive=false;	}