object RC { val undefined = -1 val ok = 0 val error = 1 val failure = 2 val startup_failure = 127 val interrupt = 130 val timeout = 142
val regular: Set[Int] = Set(ok, error)
privatedef text(rc: Int): String = { val txt =
rc match { case `undefined` => "UNDEFINED" case `ok` => "OK" case `error` => "ERROR" case `failure` => "FAILURE" case `startup_failure` => "COMMAND NOT FOUND" case `interrupt` => "INTERRUPT" case 131 => "QUIT SIGNAL" case 137 => "KILL SIGNAL" case 138 => "BUS ERROR" case 139 => "SEGMENTATION VIOLATION" case `timeout` => "TIMEOUT" case 143 => "TERMINATION SIGNAL" case _ => ""
} if (txt.isEmpty) txt else" (" + txt + ")"
}
def merge(rc1: Int, rc2: Int): Int = if (rc1 == interrupt || rc2 == interrupt) interrupt else rc1 max rc2
def merge(rcs: IterableOnce[Int]): Int = rcs.iterator.foldLeft(ok)(merge)
def apply(ok: Boolean): Int = if (ok) RC.ok else RC.error def apply(exn: Throwable): Int = if (Exn.is_interrupt(exn)) interrupt else error def apply(result: Exn.Result[Process_Result]): Int =
result match { case Exn.Res(res) => res.rc case Exn.Exn(exn) => apply(exn)
}
}
val undefined: Process_Result = Process_Result(RC.undefined) val ok: Process_Result = Process_Result(RC.ok) val error: Process_Result = Process_Result(RC.error) val startup_failure: Process_Result = Process_Result(RC.startup_failure)
}
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 ist noch experimentell.