Home  |  Linux  | Mysql  | PHP  | XML
From:Scott Stanton Date:Fri Aug 15 16:37:50 2008
Subject:RE: 2 process of par
You'll also lose the return of the exit code from the child process,
which is probably why the tests fail.

--Scott

-----Original Message-----
From: Bob Davis [mailto:bob@bobsbits.net] 
Sent: Friday, August 15, 2008 2:50 PM
To: par@perl.org
Subject: Re: 2 process of par

bob davis wrote:
> I know I asked this question before. (but didnt get an answer)
> on win32 par makes an executable and when that executable is run I get

> 2 processes. When I do the same on cygwin or linux I only get one 
> process.
>
> Anybody know why?
>
> thanks
> bob
So I think I found the file where the spawn is occuring.
myldr/static.c

#ifdef WIN32
    hinstLib = LoadLibrary("user32");
    if (hinstLib != NULL) {
        ProcAdd = (pALLOW) GetProcAddress(hinstLib, 
"AllowSetForegroundWindow");
        if (ProcAdd != NULL)
        {
            (ProcAdd)(ASFW_ANY);
        }
    }

    par_setenv("PAR_SPAWNED", "1");
    i = spawnvpe(P_WAIT, my_file, (const char* const*)argv, (const char*

const*)environ);
#else
    execvp(my_file, argv);
    return 2;
#endif

 par_cleanup(stmpdir);

I tried making it always do the #ifndef WIN32 branch and it failed the 
make test. Not sure why. Something about arg execvp wrong.

The only thing I lose is the par_cleanup which I would be willing to 
lose.(if I understand what its doing) I think it is just cleaning up the

temp files if the env var par_env_clean is set.



Any suggestions?

thanks
bob
Navigate in group perl.par at sever nntp.perl.org
Previous Next




  
© No Copyright
You are free to use Anything
Site Maintained by PHP Developer
Powered By PHP Consultants