On Tuesday, 8 October 2013 at 16:24:50 UTC, Daniel Davidson wrote:
This simple script calls out to find (on a Mac). For me this works. If I increase the output by changing maxdepth to 3 it hangs forever. When I run the same find from the shell it is fine. What could cause a deadlock in this and what is a workaround?

http://pastebin.com/ji8dZwAY

Thanks
Dan

I found a workaround with pipeProcess.

auto pipes = pipeProcess(spec, Redirect.stdout | Redirect.stderr);

    scope(exit) {
      auto exitCode = wait(pipes.pid);
      if(exitCode) {
        writeln("*** Exited rc(", exitCode, ")");
      }
    }

    foreach (line; pipes.stdout.byLine) writeln(line);

    foreach (line; pipes.stderr.byLine)
      writeln(text("STDERR| ", line.idup));
  }

Thanks,
Dan

Reply via email to