------- Comment #5 from csm at gnu dot org 2006-06-06 21:29 ------- On futher inspection, it is pegging my CPU as well. `top' was lying to me.
It *looks* as though the test `while (running)' may have been optimized away, because the threads continue to run even after the `running' variable has been set to false. The attached test case seems to illustrate the problem, and it looks like a GCJ bug. This test case: - Fails to exit when compiled with GCJ 20060606. Command line: gcj -g -O2 -o PR27908 - Fails to run interpreted when compiled with 'gcj -C'. Error is 'java.lang.IllegalAccessError: PR27908: PR27908$run1.stop()V'. - Fails to run on Sun Java 1.5.0_03 on GNU/Linux x86 if compiled with 'gcj -C'. Error is 'java.lang.VerifyError: (class: PR27908, method: main signature: ([Ljava/lang/String;)V) Illegal use of nonvirtual function call'. - Fails to run on jamvm if compiled 'gcj -C'. Error is similar to that on gij: an IllegalAccessError. This test case runs fine if compiled with Sun's 'javac -source 1.4 -target 1.4' on both gij, java, and jamvm. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27908