From 04be28746c2669716010aac23e554456c0ea155e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Mon, 14 Mar 2005 16:26:34 +0000 Subject: [PATCH] bugs have been fixed a long time ago, now no more in buglist --- mrw/exec.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/mrw/exec.cpp b/mrw/exec.cpp index 0a5cf4c..15b3bf3 100644 --- a/mrw/exec.cpp +++ b/mrw/exec.cpp @@ -9,6 +9,9 @@ @license LGPL, see file COPYING $Log$ + Revision 1.10 2005/03/14 16:26:34 marc + bugs have been fixed a long time ago, now no more in buglist + Revision 1.9 2004/12/20 07:40:35 marc documentation improved, new grouping @@ -151,11 +154,11 @@ mrw::Exec& mrw::Exec::execute(bool exc) throw(std::exception) { ssize_t num1(1), num2(1); char buf[4096]; int res(0), s(0); - /** @bug @b Solved: It sometimes did not get the whole input - since I changed to non blocking pipes. Now I have found - the solution to the problems: Non blocking IO does not - work in conjunction with @c select! Also the pipe must - not be nonblocking on both ends, but only on one. */ + /* It sometimes did not get the whole input since I changed to non + blocking pipes. Now I have found the solution to the problems: + Non blocking IO does not work in conjunction with select! + Also the pipe must not be nonblocking on both ends, but only on + one. */ while (num1||num2||!res) try { // not end of files or child terminated if (!res && (res=waitpid(pid, &s, WNOHANG))) if (res!=pid || WIFEXITED(s)!=0 && WEXITSTATUS(s)!=0) @@ -217,11 +220,11 @@ mrw::Exec& mrw::Exec::execute(const std::string& input, bool exc) std::string in(input); char buf[4096]; int res(0), s(0); - /** @bug @b Solved: It sometimes did not get the whole input - since I changed to non blocking pipes. Now I have found - the solution to the problems: Non blocking IO does not - work in conjunction with @c select! Also the pipe must - not be nonblocking on both ends, but only on one. */ + /* It sometimes did not get the whole input since I changed to non + blocking pipes. Now I have found the solution to the problems: + Non blocking IO does not work in conjunction with select! Also + the pipe must not be nonblocking on both ends, but only on + one. */ while (num0||num1||num2||!res) try { // not end of files or child terminated if (!res && (res=waitpid(pid, &s, WNOHANG))) if (res!=pid || WIFEXITED(s)!=0 && WEXITSTATUS(s)!=0)