git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change Server behaviour for start():
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
utils
/
serial
/
Server.java
diff --git
a/src/be/nikiroo/utils/serial/Server.java
b/src/be/nikiroo/utils/serial/Server.java
index f2a01c5deaa6a2db2f970d041f5b0b8178444e2c..b2771863f9be0aab58626c50f39e768a88d3e721 100644
(file)
--- a/
src/be/nikiroo/utils/serial/Server.java
+++ b/
src/be/nikiroo/utils/serial/Server.java
@@
-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.
* Start the server (listen on the network for new connections).
* <p>
* Can only be called once.
+ * <p>
+ * This call is synchronous.
*/
public void start() {
*/
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) {
boolean ok = false;
synchronized (lock) {
if (!started && ss != null) {
- started = true;
- new Thread(this).start();
ok = true;
ok = true;
+ started = true;
+ if (!wait) {
+ new Thread(this).start();
+ }
}
}
if (ok) {
tracer.trace(name + ": server started on port " + port);
}
}
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");
} else if (ss == null) {
tracer.error(name + ": cannot start server on port " + port
+ ", it has already been used");