Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction of some bugs and performance enhancement.
[jaceP2P.git] / src / jaceP2P / JaceSpawnerServer.java
index e210d88..fc3a3bb 100644 (file)
@@ -2,9 +2,9 @@ package jaceP2P;
 
 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
@@ -20,8 +20,7 @@ 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);
        }
 
@@ -84,11 +83,31 @@ public class JaceSpawnerServer extends UnicastRemoteObject implements
        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