From 5d7d42659c545571b7201efce0ba6a57ab4b0935 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Sat, 24 Feb 2018 15:48:48 -0800 Subject: better error messages when you run interactive commands without -i --- clientserver/src/mill/clientserver/ClientServer.scala | 4 ++-- clientserver/src/mill/clientserver/Server.scala | 9 +++------ clientserver/test/src/mill/clientserver/ClientServerTests.scala | 7 +------ 3 files changed, 6 insertions(+), 14 deletions(-) (limited to 'clientserver') 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) => diff --git a/clientserver/test/src/mill/clientserver/ClientServerTests.scala b/clientserver/test/src/mill/clientserver/ClientServerTests.scala index 55453c4f..db5c6396 100644 --- a/clientserver/test/src/mill/clientserver/ClientServerTests.scala +++ b/clientserver/test/src/mill/clientserver/ClientServerTests.scala @@ -38,10 +38,9 @@ object ClientServerTests extends TestSuite{ def tests = Tests{ 'hello - { - var currentTimeMillis = 0 val (tmpDir, locks) = init() - def spawnEchoServer() = { + def spawnEchoServer(): Unit = { new Thread(() => new Server( tmpDir.toString, new EchoServer(), @@ -55,7 +54,6 @@ object ClientServerTests extends TestSuite{ def runClient(arg: String) = { val (in, out, err) = initStreams() locks.clientLock.lockBlock{ - println("Client Lock") val c = new Client( tmpDir.toString, () => spawnEchoServer(), @@ -65,7 +63,6 @@ object ClientServerTests extends TestSuite{ err ) c.run(Array(arg)) - println("Client unlock") (new String(out.toByteArray), new String(err.toByteArray)) } } @@ -101,8 +98,6 @@ object ClientServerTests extends TestSuite{ ) // Make sure the server times out of not used for a while - println("Sleep 2000") - currentTimeMillis += 60001 Thread.sleep(2000) assert( locks.clientLock.probe(), -- cgit v1.2.3