sboishtyan
Flow
Observable.create( { emitter -> val process: Process = ProcessBuilder(commandAndArgs) .redirectErrorStream(true) .start() emitter.setCancellation { process.destroy() } )
ephemient
channelFlow { val process = ... invokeOnClose { process.destroy() } process.inputStream.reader().useLines { lines -> for (line in lines) send(line) } }
A modern programming language that makes developers happier.