import java.nio.charset.Charset;
import java.util.Date;
+import Implicits.truish;
+
/*----- Some magic for C strings ------------------------------------------*/
type CString = Array[Byte];
withCleaner { clean =>
/* Create the child process and pick up the ends of its streams. */
- val pb = new ProcessBuilder(cmd.asJava).redirectInput(devnull);
+ val pb = new ProcessBuilder(cmd.asJava);
val kid = pb.start(); clean { kid.destroy(); }
+ kid.getOutputStream.close();
val out = kid.getInputStream(); clean { out.close(); }
val err = kid.getErrorStream(); clean { err.close(); }
/* Check the exit status. */
val rc = kid.exitValue;
- if (rc != 0) throw new SubprocessFailed(cmd, rc, berr.result);
+ if (rc) throw new SubprocessFailed(cmd, rc, berr.result);
/* We're all done. */
return (bout.result, berr.result);
private def getTrigger(): Wrapper = {
triggerLock synchronized {
- if (nTriggers == 0)
+ if (!nTriggers)
make_trigger()
else {
val trig = triggers.head;