Skip to content

Instantly share code, notes, and snippets.

@bertmaher
Created June 14, 2017 20:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bertmaher/b3a54a6c4ed0eb5c52da91065af9d029 to your computer and use it in GitHub Desktop.
Save bertmaher/b3a54a6c4ed0eb5c52da91065af9d029 to your computer and use it in GitHub Desktop.
import com.zaxxer.nuprocess.*;
import java.util.concurrent.*;
import java.util.*;
class PipeLeakRepro {
static class ProcessHandler extends NuAbstractProcessHandler {
private NuProcess nuProcess;
@Override
public void onStart(NuProcess nuProcess) {
this.nuProcess = nuProcess;
nuProcess.closeStdin(true);
}
}
private static void doNuProcess() throws Exception {
NuProcessBuilder pb = new NuProcessBuilder(Arrays.asList("/bin/echo", "test"));
ProcessHandler handler = new ProcessHandler();
pb.setProcessListener(handler);
NuProcess process = pb.start();
process.waitFor(0, TimeUnit.SECONDS); // when 0 is used for waitFor() the wait is infinite
}
public static void main(String[] args) throws Exception {
int i = 0;
while (true) {
doNuProcess();
if (i++ == 2048) {
System.out.println("pipes start leaking");
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment