class TTY_Loop(
writer: Writer,
reader: Reader,
writer_lock: AnyRef = newObject
) { privateval console_output = Future.thread[Unit]("console_output", uninterruptible = true) { try { val result = new StringBuilder(100) var finished = false while (!finished) { var c = -1 var done = false while (!done && (result.isEmpty || reader.ready)) {
c = reader.read if (c >= 0) result.append(c.asInstanceOf[Char]) else done = true
} if (result.nonEmpty) {
System.out.print(result.toString)
System.out.flush()
result.clear()
} else {
reader.close()
finished = true
}
}
} catch { case e: IOException => case Exn.Interrupt() => }
}
privateval console_input = Future.thread[Unit]("console_input", uninterruptible = true) { val console_reader = new BufferedReader(new InputStreamReader(System.in)) try { var finished = false while (!finished) {
console_reader.readLine() match { casenull =>
writer.close()
finished = true case line =>
writer_lock.synchronized {
writer.write(line)
writer.write("\n")
writer.flush()
}
}
}
} catch { case e: IOException => case Exn.Interrupt() => }
}
def join(): Unit = { console_output.join; console_input.join }
def cancel(): Unit = console_input.cancel()
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.10Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.