[kaffe] Deadlock in JIT3 println call

Tony Wyatt Tony Wyatt <wyattaw@optushome.com.au>
Wed Jun 4 01:23:01 2003


Hi all,

I'm trying to rid myself of runtime errors in the JIT3 (version 1.0.7) 
on the m68k Amiga platform. Currently I'm wrestling with this one:

When executing the expression:

println("=" + (fmeth() / fmeth()) ), kaffe goes into deadlock. It only
happens when the argument is an expression of two methods, producing a NaN.
A single float and it works. A single NaN and it works. A method that
returns a NaN works. An ordinary method call instead of "println" works.

Here is the whole test fragment:

import java.io.*;

class FloatTest
{
    public static void main(String[] args)
    {
        System.out.println("=" + (fmeth() / fmeth()) );
    }   

    public static float fmeth()
    {
        return 0.0f;
    }
}

/* Expected Output:
=NaN
*/

When executed, it merely prints out "Dumping live threads", and the three
threads "gc", "finaliser" and "main". The runtime is deadlocked.

Has anyone any thoughts? Needless to say, it doesn't happen on other
platforms running JIT3.

cheers
tony