I apologize if this is the incorrect place to send this, I tried
submitting a bug report but I don't know if it got through, and it is
important that I resolve this ASAP.

I have a problem with JDK1.1.7-v1a running green threads.  I am running
basic fibonacci code, using the recursive algorithm and implemented with
threads.  This code runs without incident on the Solaris JDK.  However,
when I try to run it using the Blackdown port, it works fine up to fib 5,
but when I run fib 6, I get a seg fault.  I am running this on a Debian
2.0 system with glibc.  I have a similar problem with n-queens code, it
runs fine on Solaris, but on Linux problems arise above an 8x8 board.

I you had any ideas as to why this happens I would greatly appreciate
them.  Thanks.


- Pat


--------- Code -------------

import java.util.*;

public class java_fib extends Thread
{
  private int fib;

  java_fib(int number) { 
    fib = number; 
  }

  public void run() {
    if( (fib==0) || (fib == 1)) {
      fib = fib;
    }
    
    else {
      java_fib java_fib_thread_1 = new java_fib(fib - 1);
      java_fib java_fib_thread_2 = new java_fib(fib - 2);
      
      java_fib_thread_1.start();
      java_fib_thread_2.start();
      
      try {
        java_fib_thread_1.join();
        java_fib_thread_2.join();
        fib = java_fib_thread_1.get_fib() +
              java_fib_thread_2.get_fib();
      }
      catch(InterruptedException e){
        e.printStackTrace();
      }
    }
  }

  private int get_fib() {
    return fib;
  }


  public static void main(String arg[]) {
    java_fib fib;
    int number;
    number = new Integer(arg[0]).intValue();
    fib = new java_fib(number);
    Date now;
    Date then = new Date();
    fib.start();

    try {
      fib.join();
      now = new Date();
      System.out.println("The total execution time is "  +
            ((now.getTime() - then.getTime())) + "ms.");
      System.out.println("The fibonacci for " + number + " is: " +
                         fib.get_fib());
    }
    catch(InterruptedException e) {
      e.printStackTrace();
    }
  }
}

Reply via email to