Scilab called within a Java thread

scheiber scheiber at unitbv.ro
Fri May 6 20:08:41 CEST 2011


Hi,

My problem is the Scilab calling within a Java thread. The bellow example
works when the  number of threads (noThreads) is 1 but increasing this
number it crashes.

import org.scilab.modules.javasci.Scilab; 
import org.scilab.modules.types.ScilabType;
import org.scilab.modules.types.ScilabDouble;
import java.util.concurrent.*; 

public class TestThreadScilab{
  static Scilab sci;
  static int noThreads=1;
  
  public static void main(String... args){
    try{
      sci=new Scilab();
    }
    catch(org.scilab.modules.javasci.JavasciException e) {
      System.err.println("An exception occured: " +
e.getLocalizedMessage());
      System.exit(1);
    } 
    ExecutorService executor=Executors.newFixedThreadPool(noThreads);
    for(int i=0;i<noThreads;i++){
      Fir fir=new Fir(i);
      executor.execute(fir); 
    }
    try{
      executor.shutdown();
      while(!executor.isTerminated());
      sci.close();
    }
    catch(Exception e){} 
    System.out.println("Finished");    
  }
  
  static class Fir extends Thread{
    private int index;
    
    Fir(int index){
      this.index=index;
    }
    
    public void run(){
      System.out.println("Thread "+index+" started");
      try{
        if(sci.open()){
          double ind=index*1.0d;
          ScilabDouble sci_ind=new ScilabDouble(ind);
          sci.put("u",sci_ind);
          sci.exec(new String[]{"v=u+10","disp(v)"});
          ScilabDouble sci_v=(ScilabDouble)sci.get("v");
          if(!sci_v.isEmpty()){
            double[][] v=sci_v.getRealPart();
            System.out.println("Index "+index+" : "+v[0][0]);
          }
        }
        else{
          System.out.println("Could not start Scilab ");
        }
      } 
      catch(org.scilab.modules.javasci.JavasciException e) {
        System.err.println("An exception occured: " +
e.getLocalizedMessage());
      }
    }
  }
}



--
View this message in context: http://mailinglists.scilab.org/Scilab-called-within-a-Java-thread-tp2909258p2909258.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at Nabble.com.



More information about the users mailing list