diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-24 15:48:48 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-24 17:13:04 -0800 |
commit | 5d7d42659c545571b7201efce0ba6a57ab4b0935 (patch) | |
tree | 365cc15d40ab00808b599d1e309af7d18f410efa /clientserver/src | |
parent | 139afd965ea072f8216b56126fb08dc8a44ebac4 (diff) | |
download | mill-5d7d42659c545571b7201efce0ba6a57ab4b0935.tar.gz mill-5d7d42659c545571b7201efce0ba6a57ab4b0935.tar.bz2 mill-5d7d42659c545571b7201efce0ba6a57ab4b0935.zip |
better error messages when you run interactive commands without -i
Diffstat (limited to 'clientserver/src')
-rw-r--r-- | clientserver/src/mill/clientserver/ClientServer.scala | 4 | ||||
-rw-r--r-- | clientserver/src/mill/clientserver/Server.scala | 9 |
2 files changed, 5 insertions, 8 deletions
diff --git a/clientserver/src/mill/clientserver/ClientServer.scala b/clientserver/src/mill/clientserver/ClientServer.scala index 84ea2e00..f775f8d6 100644 --- a/clientserver/src/mill/clientserver/ClientServer.scala +++ b/clientserver/src/mill/clientserver/ClientServer.scala @@ -48,14 +48,14 @@ object ClientServer{ } } - def interruptWith[T](millis: Int, close: => Unit)(t: => T): Option[T] = { + def interruptWith[T](millis: Int, close: => Unit, t: => T): Option[T] = { @volatile var interrupt = true @volatile var interrupted = false new Thread(() => { Thread.sleep(millis) if (interrupt) { - close interrupted = true + close } }).start() diff --git a/clientserver/src/mill/clientserver/Server.scala b/clientserver/src/mill/clientserver/Server.scala index a40c7cbe..52549f69 100644 --- a/clientserver/src/mill/clientserver/Server.scala +++ b/clientserver/src/mill/clientserver/Server.scala @@ -41,13 +41,10 @@ class Server[T](lockBase: String, val ioSocket = new UnixDomainServerSocket(ioPath) val sockOpt = ClientServer.interruptWith( acceptTimeout, - { - try new UnixDomainSocket(ioPath).close() - catch{case e: Throwable => } - } - ){ + new UnixDomainSocket(ioPath).close(), ioSocket.accept() - } + ) + sockOpt match{ case None => running = false case Some(sock) => |