private class mythread extends Thread {
Semaphore m_sem;
String m_eval;
public mythread(Semaphore sem, String eval) {
m_sem = sem;
m_eval = eval;
}
@Override
public void run() {
boolean ret = false;
System.out.println("running semwait thread");
try {
ret = m_sem.tryAcquire(60, TimeUnit.SECONDS);
} catch (InterruptedException ex) {
System.out.println("timeout: " + ex.getMessage());
}
System.out.println("acquire sem: " + ret);
if ((m_eval != null) && (m_eval != "")) {
System.out.println("evaluating: " + m_eval);
try {
// Execute command on shared MATLAB session
MatlabEngine eng = MatlabEngine.connectMatlab("darwin");
eng.eval("darwin=5;");
eng.eval("mytick_helper");
eng.close();
} catch (MatlabSyntaxException ex) {
Logger.getLogger(semwait.class.getName()).log(Level.SEVERE, null, ex);
} catch (CancellationException ex) {
Logger.getLogger(semwait.class.getName()).log(Level.SEVERE, null, ex);
} catch (ExecutionException ex) {
Logger.getLogger(semwait.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(semwait.class.getName()).log(Level.SEVERE, null, ex);
}
try {
} catch (Exception ex) {
System.out.println("exception: " + ex.getMessage() + ", str: " + ex.toString());
ex.printStackTrace();
}
System.out.println("done semwait thread.");
}
}
}
public void hello(String str) {
System.out.println("hello world: " + str);
}
public void hello() {
System.out.println("hello world");
}
public void wait(Semaphore sem, String eval_str) {
new mythread(sem, eval_str).start();
}
}
0 Comments
Sign in to comment.