bugs have been fixed a long time ago, now no more in buglist
This commit is contained in:
		
							
								
								
									
										23
									
								
								mrw/exec.cpp
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								mrw/exec.cpp
									
									
									
									
									
								
							@@ -9,6 +9,9 @@
 | 
				
			|||||||
    @license LGPL, see file <a href="license.html">COPYING</a>
 | 
					    @license LGPL, see file <a href="license.html">COPYING</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $Log$
 | 
					    $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
 | 
					    Revision 1.9  2004/12/20 07:40:35  marc
 | 
				
			||||||
    documentation improved, new grouping
 | 
					    documentation improved, new grouping
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -151,11 +154,11 @@ mrw::Exec& mrw::Exec::execute(bool exc) throw(std::exception) {
 | 
				
			|||||||
    ssize_t num1(1), num2(1);
 | 
					    ssize_t num1(1), num2(1);
 | 
				
			||||||
    char buf[4096];
 | 
					    char buf[4096];
 | 
				
			||||||
    int res(0), s(0);
 | 
					    int res(0), s(0);
 | 
				
			||||||
    /** @bug @b Solved: It sometimes did not get the whole input
 | 
					    /* It sometimes did not get the whole input since I changed to non
 | 
				
			||||||
             since I changed to non blocking pipes. Now I have found
 | 
					       blocking pipes. Now I have found the solution to the problems:
 | 
				
			||||||
             the solution to the problems: Non blocking IO does not
 | 
					       Non blocking IO does not work in conjunction with select! 
 | 
				
			||||||
             work in conjunction with @c select! Also the pipe must
 | 
					       Also the pipe must not be nonblocking on both ends, but only on
 | 
				
			||||||
             not be nonblocking on both ends, but only on one. */
 | 
					       one. */
 | 
				
			||||||
    while (num1||num2||!res) try { // not end of files or child terminated
 | 
					    while (num1||num2||!res) try { // not end of files or child terminated
 | 
				
			||||||
      if (!res && (res=waitpid(pid, &s, WNOHANG)))
 | 
					      if (!res && (res=waitpid(pid, &s, WNOHANG)))
 | 
				
			||||||
        if (res!=pid || WIFEXITED(s)!=0 && WEXITSTATUS(s)!=0)
 | 
					        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);
 | 
					    std::string in(input);
 | 
				
			||||||
    char buf[4096];
 | 
					    char buf[4096];
 | 
				
			||||||
    int res(0), s(0);
 | 
					    int res(0), s(0);
 | 
				
			||||||
    /** @bug @b Solved: It sometimes did not get the whole input
 | 
					    /* It sometimes did not get the whole input since I changed to non
 | 
				
			||||||
             since I changed to non blocking pipes. Now I have found
 | 
					       blocking pipes. Now I have found the solution to the problems:
 | 
				
			||||||
             the solution to the problems: Non blocking IO does not
 | 
					       Non blocking IO does not work in conjunction with select! Also
 | 
				
			||||||
             work in conjunction with @c select! Also the pipe must
 | 
					       the pipe must not be nonblocking on both ends, but only on
 | 
				
			||||||
             not be nonblocking on both ends, but only on one. */
 | 
					       one. */
 | 
				
			||||||
    while (num0||num1||num2||!res) try { // not end of files or child terminated
 | 
					    while (num0||num1||num2||!res) try { // not end of files or child terminated
 | 
				
			||||||
      if (!res && (res=waitpid(pid, &s, WNOHANG)))
 | 
					      if (!res && (res=waitpid(pid, &s, WNOHANG)))
 | 
				
			||||||
        if (res!=pid || WIFEXITED(s)!=0 && WEXITSTATUS(s)!=0)
 | 
					        if (res!=pid || WIFEXITED(s)!=0 && WEXITSTATUS(s)!=0)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user