All,
I have noticed endless loop behavior when running gc.LOS.  It appears to go
into some sort of endless loop when I try, " build test".  Does anyone else
see this problem?

I used MSVC to break into drlvm when it gets stuck.  It shows basically
what's been reported before – a bunch of threads in JITed code.  They keep
making some system call.

Semis/vm/_smoke.tests/reports/gc.LOS_jit.out shows that somehow LOS.java is
in an infinite loop after it prints all 200 dots.  This is rather curious.

Looking at gc/LOS.java, there is a "threads[i].join()" where "i" goes from 0
to 199.  This thread join happens immediately after a "notifyAll()" that is
intended to tell each of the threads to start running.

I moved the trace(".") to immediately after the synchronized statement in
run().  The test now completes successfully.  It might be a bug in the
implementation of Object.wait() and Object.notifyAll() that different HW/SW
combinations are aggrevating???   Below are the mods that I made:

   public void run () {

       //trace(".");

       synchronized (this.getClass()) {

           if (!started)

               try {

                   this.getClass().wait();

               } catch (InterruptedException e) {}

       }

               trace(".");  //wjw










--
Weldon Washburn
Intel Middleware Products Division

Reply via email to