まず第一に、私は scala を学んでおり、Java の世界は初めてです。コンソールを作成し、このコンソールを開始および停止できるサービスとして実行したいと考えています。ConsoleReader を Actor で実行できましたが、ConsoleReader を適切に停止する方法がわかりません。コードは次のとおりです。
import eu.badmood.util.trace
import scala.actors.Actor._
import tools.jline.console.ConsoleReader
object Main {
def main(args:Array[String]){
//start the console
Console.start(message => {
//handle console inputs
message match {
case "exit" => Console.stop()
case _ => trace(message)
}
})
//try to stop the console after a time delay
Thread.sleep(2000)
Console.stop()
}
}
object Console {
private val consoleReader = new ConsoleReader()
private var running = false
def start(handler:(String)=>Unit){
running = true
actor{
while (running){
handler(consoleReader.readLine("\33[32m> \33[0m"))
}
}
}
def stop(){
//how to cancel an active call to ConsoleReader.readLine ?
running = false
}
}
このコードに関するアドバイスもお待ちしています。