summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/util/SocketServer.scala
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2008-10-15 15:52:53 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2008-10-15 15:52:53 +0000
commitacd4c9471dcccc1ba1e97d4e6f4f86323e52355f (patch)
tree645a55d42418f01024ac79f73b12b0a5e6044780 /src/compiler/scala/tools/util/SocketServer.scala
parentd180b26e6ae7909d77ab4821150fecd0b9927e46 (diff)
downloadscala-acd4c9471dcccc1ba1e97d4e6f4f86323e52355f.tar.gz
scala-acd4c9471dcccc1ba1e97d4e6f4f86323e52355f.tar.bz2
scala-acd4c9471dcccc1ba1e97d4e6f4f86323e52355f.zip
Partial fix for ticket #41.
If the fsc server is already running, multiple concurrent compilation attempts will now succeed. However, if no fsc server is running, all of the clients will try to launch one at the same time, with somewhat unpleasant results.
Diffstat (limited to 'src/compiler/scala/tools/util/SocketServer.scala')
-rw-r--r--src/compiler/scala/tools/util/SocketServer.scala14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/util/SocketServer.scala b/src/compiler/scala/tools/util/SocketServer.scala
index 5c3db29e18..3c311f1c53 100644
--- a/src/compiler/scala/tools/util/SocketServer.scala
+++ b/src/compiler/scala/tools/util/SocketServer.scala
@@ -47,13 +47,13 @@ abstract class SocketServer {
}
def run() {
+ val serverSocket = try {
+ new ServerSocket(port)
+ } catch {
+ case e: IOException =>
+ fatal("Could not listen on port: " + port + "; exiting.")
+ }
while (!shutDown) {
- val serverSocket = try {
- new ServerSocket(port)
- } catch {
- case e: IOException =>
- fatal("Could not listen on port: " + port + "; exiting.")
- }
val clientSocket = try {
serverSocket.accept()
} catch {
@@ -73,8 +73,8 @@ abstract class SocketServer {
out.close()
in.close()
clientSocket.close()
- serverSocket.close()
}
+ serverSocket.close()
}
}