kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #07383
Re: wxProcess and wxExecute are a mess
On 1/17/2012 1:00 PM, Dick Hollenbeck wrote:
>
> This thread shows how bad the wxExecute and wxProcess support are in wxWidgets:
>
> http://trac.wxwidgets.org/ticket/12636
>
> I read it once, and tears were in my eyes before I got to the end.
Yuck! It looks like the wxWidgets folks have some work to do. It
appears they are working on it but it may be a while before they have a
solution that will work for us.
>
> Of course the problem we always have on linux is the locking up of the child process
>
>
>
> Perhaps we should do these steps:
>
> 1) Change common's
>
> bool ProcessExecute( const wxString& aCommandLine, int aFlags )
>
> to
>
> bool ProcessExecute( const wxString& aCommandLine, bool runAsync = true )
>
>
> 2) Move it into its own processexecute.cpp source file, still in libcommon, so that we can
> use unusual, system dependent header files in that single implementation file.
>
>
> 3) Think about using boost/process.hpp to launch our child programs, or a combination of
> fork() and exec() on linux (google around for a combo function).
> In any case this is now in its own file, and we control the strategy in a single place.
This makes sense to me. If we have to roll our own solution, then it
could get rather complex so putting it in it's own file is a good idea.
>
> The piping back into the parent process must be omitted, we don't use it or want it, and
> hopefully this can finally clean up the locking up on Debug and sometimes Release builds.
>
>
> If either:
>
> a) boost/process.hpp were to require compiled library files, or
> b) it did not become available until after our current boost version,
>
> then I would score this against it heavily. But if it can be done by the addition of a
> few boost version compatible header files, this is worth a look.
I don't believe Boost process has been excepted for the next release of
Boost. Here is the original review post on the Boost mailing list:
http://lists.boost.org/Archives/boost/2011/02/176751.php
After reading a few responses, it looks like there is still quite a bit
of work to do before it will be included into Boost.
We could always grab a copy from:
http://svn.boost.org/svn/boost/sandbox/process/boost/
and give it try.
Wayne
>
> Again, its a good thing we have our own wrapper function ProcessExecute(), so details are
> not exposed.
>
> I am suggesting that someone else do this work.
>
>
> Thanks,
>
> Dick
>
>
>
>
Follow ups
References