https://github.com/doctorlove/ninja/commit/a4954a4f03d8e5127ee2f28691b67e5e1f5c74fd
I'm not sure I understand it.
Rachel
Ah, so it is is really similar to _exit then, thanks!
> Xoreax Incredibuild injects threads into the process being parallelised
> (ninja, nmake), this is why we see a behaviour difference in ninja.
Wow, I didn't realize that. Do you know why?
(We used Incredibuild for Chrome but found it to be pretty unreliable,
which is too bad as it seemed pretty fancy. I think some of our
buildbot use it but few engineers do.)
I might misreading this, but it seems to say pretty clearly that
ExitProcess is _not_ recommended if you're running in an environment
that uses the CRT. (Which ninja is). Having said all that...
> Xoreax Incredibuild injects threads into the process being parallelised
> (ninja, nmake), this is why we see a behaviour difference in ninja.
Sigh. Since I haven't used Incredibuild for quite a while, I wasn't
aware it did that. But sure enough, they seem to have added "Automatic
Interception" for make-based builds.
(http://www.xoreax.com/xge_xoreax_grid_engine.htm#interfaces)
If you have a case where ninja reproducibly hangs due to calling
exit/_exit, I suggest also filing a bug with the Incredibuild guys -
the only way that can happen would be for them to do infinite waits in
atexit() functions they injected.
Rachel
On Wed, Jan 4, 2012 at 2:57 AM, Philip Craig <phi...@pobox.com> wrote:Ah, so it is is really similar to _exit then, thanks!
> A source for the claim of different behaviour.
> http://stackoverflow.com/questions/915312/different-ways-of-exiting-a-process-in-c