Todd Lipcon has submitted this change and it was merged. Change subject: subprocess: allow Call() to read both stdout and stderr ......................................................................
subprocess: allow Call() to read both stdout and stderr I'm going to use this in a new integration test for the tool. Since the parent is now reading from two pipes, it needs to do so more carefully. For example, if it read from stdout fully before looking at stderr, both it and the child would deadlock if the child wrote 64k bytes to the stderr pipe, hit the kernel limit, and got blocked. I played around with an implementation based on poll(), but ultimately found this one (based on libev) to be simpler. Change-Id: If5f2be94c2e5cc0644a5bb2340adc4a71d844247 Reviewed-on: http://gerrit.cloudera.org:8080/4057 Tested-by: Kudu Jenkins Reviewed-by: Todd Lipcon <t...@apache.org> --- M src/kudu/util/CMakeLists.txt M src/kudu/util/subprocess-test.cc M src/kudu/util/subprocess.cc M src/kudu/util/subprocess.h 4 files changed, 163 insertions(+), 64 deletions(-) Approvals: Todd Lipcon: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/4057 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: If5f2be94c2e5cc0644a5bb2340adc4a71d844247 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Dan Burkert <d...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon <t...@apache.org>