Subject: Re: [Boost-bugs] [Boost C++ Libraries] #994: BJam output with parallel builds jumbled.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2007-05-29 09:41:56
#994: BJam output with parallel builds jumbled.
-------------------------------+--------------------------------------------
Reporter: grafik | Owner: grafik
Type: Bugs | Status: new
Milestone: Boost.Jam 3.1.15 | Component: Building Boost
Version: Boost.Jam 3.1.14 | Severity: Problem
Resolution: | Keywords:
-------------------------------+--------------------------------------------
Comment (by Rob.Lievaart_at_[hidden]):
Hi,
popen won't do the trick, as it only catches stdout en not stderr(AFAIK).
You will
need to create your own pipes for stdin,stoud and stderr, and after the
fork, move
these to the in/out/err filedescriptors before running execvp. (and close
any
other open fds). Since you would do more then call exec after the fork,
vfork can no longer be used.
Then in the parent you need to have some kind of select loop waiting on
the fd's for all children, and reading and collecting the output from
them. And when the process has finished you can dump that to the screen.
(waitexec might be the place to do that.
And on Win32 with create process, it works, eh, different. Don't know the
details, for that, but createprocess is sort of a combination of
fork/exec, and you can pass handles for in/out/error to the function.
Don't know about any other platforms.
Rob Lievaart
--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/994#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:55 UTC