Change Server behaviour for start():
[nikiroo-utils.git] / src / be / nikiroo / utils / serial / Server.java
index f2a01c5deaa6a2db2f970d041f5b0b8178444e2c..b2771863f9be0aab58626c50f39e768a88d3e721 100644 (file)
@@ -125,19 +125,38 @@ abstract public class Server implements Runnable {
         * Start the server (listen on the network for new connections).
         * <p>
         * Can only be called once.
+        * <p>
+        * This call is synchronous.
         */
        public void start() {
+               start(true);
+       }
+
+       /**
+        * Start the server (listen on the network for new connections).
+        * <p>
+        * Can only be called once.
+        * 
+        * @param wait
+        *            TRUE for synchronous, FALSE for asynchronous
+        */
+       public void start(boolean wait) {
                boolean ok = false;
                synchronized (lock) {
                        if (!started && ss != null) {
-                               started = true;
-                               new Thread(this).start();
                                ok = true;
+                               started = true;
+                               if (!wait) {
+                                       new Thread(this).start();
+                               }
                        }
                }
 
                if (ok) {
                        tracer.trace(name + ": server started on port " + port);
+                       if (wait) {
+                               run();
+                       }
                } else if (ss == null) {
                        tracer.error(name + ": cannot start server on port " + port
                                        + ", it has already been used");