X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fuk%2Fac%2Fvamsas%2Fclient%2Fpicking%2FPickServer.java;h=a9e7c1c7df87fe78c75a56c30e217550b2ced495;hb=f900bd84927e08acb2c47527da9cc4efe3a2b968;hp=ab2aaf8912ea22e162c53e4375d46316dcf24951;hpb=c8fdf290404aef51316aafd6422afdf49f5f025d;p=vamsas.git diff --git a/src/uk/ac/vamsas/client/picking/PickServer.java b/src/uk/ac/vamsas/client/picking/PickServer.java index ab2aaf8..a9e7c1c 100644 --- a/src/uk/ac/vamsas/client/picking/PickServer.java +++ b/src/uk/ac/vamsas/client/picking/PickServer.java @@ -57,35 +57,7 @@ class PickServer extends Thread return false; } } - /** - * state of server thread - running or not running - */ - private boolean running=false; - /** - * condition for server thread to stop - */ - private boolean enabled=true; - public void haltServer() { - // TODO: FIX THIS METHOD - if (!running || !enabled) { - logger.debug("PickServer is not running or already requested to halt."); - return; - } - logger.debug("Disabling pick server."); - enabled=false; - while (running) { - try { - serverSocket.close(); - } catch (Exception e) { - - } - try { - Thread.sleep(5); - } catch (Exception e) { - } - } - logger.debug("Pick server has stopped."); - } + /** * Thread listening method - loops indefinitely listening for connections. * When one is received, the socket object is passed to the manager so it @@ -93,25 +65,32 @@ class PickServer extends Thread */ public void run() { - enabled=true; - running=true; - //logger.info("SERVER: listening on " + PORT + " - SERVER"); + logger.info("SERVER: listening on " + PORT + " - SERVER"); // Loop forever, accepting connectons from other clients - // TODO: terminate the server when haltServer is called (fails tests currently) - while (enabled) + // TODO: add in the ability to terminate the server if a VAMSAS session + // is ended + while (true) { try { Socket socket = serverSocket.accept(); - //logger.info("SERVER: connection detected"); + logger.info("SERVER: connection detected"); manager.addEndPoint(socket); } catch (IOException e) {} } - running=false; - manager.haltManager(); - + } + + void terminate() + { + logger.info("Server shutting down..."); + + try { serverSocket.close(); } + catch (Exception e) + { + logger.error(e); + } } } \ No newline at end of file