我已經創建了一個Scala過程,我讀到這是阻止,它應該包裹在scala.concurrent.blocking中嗎?我很困惑,因爲進程將回調到這裏的日誌參數,這將需要這個線程做我猜想的東西,所以它不完全阻塞?一個Scala過程應該在Scala Future中標記爲scala.concurrent.blocking嗎?
import scala.sys.process.Process
import scala.concurrent.Future
import scala.sys.process.ProcessLogger
def something = Future {
val log = ProcessLogger(normal => {
lines = lines :+ normal
Logger.info("SFTPline added: " + normal)
},
error => {
Logger.info("SFTPERROR: " + error)
})
val success = scala.concurrent.blocking {
val result = Process(command).!(log)
lines.mkString("").contains("\"success\":true") && (result == 0)
}
}
對不起,我暗示它的全部內容都在未來版本中,在這裏我已經更改了代碼以明確說明。 – Phil 2014-10-29 12:48:13