
On Sat, Sep 15, 2012 at 8:46 AM, Boris Schaeling [via Boost] <ml-node+s2283326n4635808h26@n4.nabble.com> wrote:
On Wed, 12 Sep 2012 22:10:12 +0200, alfC <[hidden email]> wrote:
[...]I have a small criticism (probably from ignorance) and it is that the new version seems to be more complicated to use than the previous versions.
Oh, do you have an example for me to see where you think the new version is more complicated than the previous one?
Well, in the first place: the added dependecy on boost.iostreams which I was not familiar with. Which in addition is not a header-only library. Second, in the example code, there are four lines (marked with *) just to set up the stream, * boost::process::pipe p = create_pipe(); * file_descriptor_sink sink(p.sink, close_handle); child c = execute(run_exe("/usr/bin/ls"), bind_stdout(sink)); * file_descriptor_source source(p.source, close_handle); * stream<file_descriptor_source> is(source); if I were to have an output stream I would need four more lines presumably (I would be nice to have a complete example of asynchonic both input and output). So, the question is, is the boost.iostream really necessary? or is shown in the example for generality? Even if boost.iostream lines are necessary, can they be that wrapped away (by the user), or the library, such that you have something that just works? For example: process::iostream ps("/usr/bin/ls"); // or as a function auto ps = process::create_iostream("/usr/bin/ls"); // bang!, ps is ready for io operations,
[...] If that is the case you can add a warning in the library to not compile with old versions of boost. someone at stackoverflow, suggested to open the process asynchronously and do a status check. (see
http://stackoverflow.com/questions/12329065/how-to-bind-program-termination-...) Seemed like an ovekill. I am glad it is a bug instead.
There is actually a note at <http://www.highscore.de/boost/process0.5/boost_process/tutorial.html#boost_process.tutorial.synchronous_i_o> to inform users about that bug in Boost.Iostreams. Maybe it shouldn't be a note but a warning or something else which can't be overlooked easily? :)
ah, you are talking about that note, well the note says: "There is a Boost.Iostreams bug on Windows...", but all these issues are in Linux. I want to write a note in stackoverflow, can you confirm that the problem was a bug in Boost.Iostream in linux/posix also? Thanks, Alfredo -- View this message in context: http://boost.2283326.n4.nabble.com/How-to-bind-program-termination-with-end-... Sent from the Boost - Dev mailing list archive at Nabble.com.