removed infinite loop on server shutdown
[vamsas.git] / src / uk / ac / vamsas / client / picking / SocketManager.java
index ad12a71..bc9dd59 100644 (file)
@@ -35,7 +35,7 @@ public class SocketManager implements IPickManager
         */\r
        public SocketManager()\r
        {\r
-//             logger.setLevel(Level.OFF);\r
+       //logger.setLevel(Level.OFF);\r
                \r
                server = new PickServer(this);\r
                clients = new LinkedList();\r
@@ -149,15 +149,15 @@ public class SocketManager implements IPickManager
        {\r
                public void run()\r
                {\r
-                       logger.info("Initializing connection...");\r
+                       logger.debug("Initializing connection...");\r
                        boolean connected = false;\r
                        \r
                        // Loop until we can get a connection (one way or the other)\r
-                       while (!connected)\r
+                       while (!connected && isRunning)\r
                        {\r
                                // Sleep for a rnd time so we don't end up with all the VAMSAS\r
                                // apps trying to initialize servers at the same time\r
-                               try { Thread.sleep((int)Math.random()); }\r
+                               try { Thread.sleep((int)(10*Math.random())); }\r
                                catch (InterruptedException e) {}\r
                                        \r
                                // Attempt to open the server port...\r
@@ -168,20 +168,25 @@ public class SocketManager implements IPickManager
                                else if (addEndPoint(null))\r
                                        connected = true;\r
                        }\r
+      logger.debug("Completed initializing connection.");\r
                }\r
        }\r
        \r
        public void shutdown()\r
        {\r
-               if (server == null)\r
+               logger.debug("Shutting down socket manager.");\r
+    if (server == null)\r
                        throw new Error("Client Implementation Error: shutdown() called on uninitialized SocketManager.");\r
                \r
                isRunning = false;\r
                \r
                if (server.isServer())\r
                        server.terminate();\r
-\r
-               while (clients.size() > 0)\r
-                       ((PickEndPoint)clients.getFirst()).terminate();\r
-       }\r
+               \r
+               while (clients.size() > 0) {\r
+                       logger.debug("Closing endpoint.");\r
+      ((PickEndPoint)clients.getFirst()).terminate();\r
+               }\r
+    logger.debug("Shutdown of socketmanager completed.");\r
+  }\r
 }
\ No newline at end of file