import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import java.util.Vector;
public class JaceSpawnerServer extends UnicastRemoteObject implements
super();
}
- @SuppressWarnings("unchecked")
- public void startProcess(Vector spawnersList) throws RemoteException {
+ public void startProcess(ArrayList<Object> spawnersList) throws RemoteException {
JaceSpawner.Instance().startProcess(spawnersList);
}
public boolean getFinished() throws RemoteException {
return finished;
}
+
+ private class Signaler implements Runnable
+ {
+ JaceInterface host ;
+ int rankOfDead ;
+ Signaler( JaceInterface _host, int _rankOfDead )
+ {
+ host = _host ;
+ rankOfDead = _rankOfDead ;
+ }
+
+ @Override
+ public void run()
+ {
+ JaceSpawner.Instance().signalDeadNode( host, rankOfDead ) ;
+ }
+
+ }
- public void signalDeadNode(JaceInterface host, int rankOfDead)
+ public void signalDeadNode(JaceInterface host, int rankOfDead )
throws RemoteException {
- System.out.println("SignalDeadNode of rank " + rankOfDead);
- JaceSpawner.Instance().signalDeadNode(host, rankOfDead);
+ System.out.println( "SignalDeadNode of rank " + rankOfDead ) ;
+
+ new Thread( new Signaler( host, rankOfDead ) ).start() ;
+// JaceSpawner.Instance().signalDeadNode( host, rankOfDead ) ;
}
// heartBeat that detects if a Spawner is dead or alive