| import java.lang.*; |
| |
| /* Simple producer/consumer thread test. */ |
| |
| public class ThreadTest implements Runnable { |
| |
| static String threadName = "Running thread"; |
| static int count = 0; |
| static int max = 4; // XXX Seem to fail when >4 on kaffe 0.9.0 |
| |
| public void run() { |
| if (! Thread.currentThread().isAlive() ) { |
| System.out.println("FAILED: isAlive() false in new thread!"); |
| } else { |
| System.out.println("PASSED: isAlive() working in new thread"); |
| } |
| while (0 <= count && count <= max) { |
| count ++; |
| } |
| } |
| |
| public static void main (String args[]) { |
| try { |
| if (! Thread.currentThread().isAlive() ) { |
| System.out.println("FAILED: isAlive() false in initial thread!"); |
| } else { |
| System.out.println("PASSED: isAlive() working in initial thread"); |
| } |
| ThreadTest test = new ThreadTest(); |
| |
| Thread testThread = new Thread(test, threadName); |
| |
| testThread.setDaemon(true); |
| testThread.start(); |
| |
| Thread.currentThread().sleep(3000); |
| |
| if (count < max) { |
| System.out.println("FAILED: unable to run new thread"); |
| } else { |
| System.out.println("PASSED: Theads worked"); |
| } |
| System.exit(0); |
| } catch (Exception e) { |
| System.out.println("FAILED: "+e); |
| } |
| } |
| } |