From: Jonathan de Boyne Pollard on
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<blockquote
cite="mid:f2c4d1d7-554e-452e-a786-0be0d97fd242(a)k18g2000prf.googlegroups.com"
type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<p wrap="">In my view, what you are presuming that <code>TerminateProcess()</code>
will always be correct, regardless if the child process was
successfully loaded and started.<br>
</p>
</blockquote>
<p wrap="">...or return an error.<br>
</p>
</blockquote>
<p wrap="">... or already finished :)<br>
</p>
</blockquote>
<p wrap="">It's not a Cray-3 though so that's not a possibility :)<br>
</p>
</blockquote>
<p>Has the penny not dropped here, yet?&nbsp; Notice the difference that
you've spotted between multiprocessor and uniprocessor machines. Think
about what that means.&nbsp; In particular, think about what it means with
respect to what thread(s) run(s) immediately after a new process (with
a new main thread) has been spawned.&nbsp; Also think about what it means to
make the thread in the parent process sleep immediately after the <code>CreateProcess()</code>
call returns.&nbsp; Multiprogramming may be a black box, but it is not magic.&nbsp;
There is an underlying reality of how threads are dispatched.<br>
</p>
</body>
</html>
From: Ivo Beltchev on


Jonathan de Boyne Pollard wrote:
>>
>>>>>
>>>>> In my view, what you are presuming that |TerminateProcess()| will
>>>>> always be correct, regardless if the child process was successfully
>>>>> loaded and started.
>>>>>
>>>> ...or return an error.
>>>>
>>> ... or already finished :)
>>>
>> It's not a Cray-3 though so that's not a possibility :)
>>
> Has the penny not dropped here, yet? Notice the difference that you've
> spotted between multiprocessor and uniprocessor machines. Think about
> what that means. In particular, think about what it means with respect
> to what thread(s) run(s) immediately after a new process (with a new
> main thread) has been spawned. Also think about what it means to make
> the thread in the parent process sleep immediately after the
> |CreateProcess()| call returns. Multiprogramming may be a black box,
> but it is not magic. There is an underlying reality of how threads are
> dispatched.
>

For those not familiar with the Cray-3's awesome computing power:
http://dictionary.die.net/infinite%20loop
From: Hector Santos on
Ivo Beltchev wrote:

>>>>
>>> It's not a Cray-3 though so that's not a possibility :)
>>>
>> Has the penny not dropped here, yet? Notice the difference that
>> you've spotted between multiprocessor and uniprocessor machines. Think
>> about what that means. In particular, think about what it means with
>> respect to what thread(s) run(s) immediately after a new process (with
>> a new main thread) has been spawned. Also think about what it means
>> to make the thread in the parent process sleep immediately after the
>> |CreateProcess()| call returns. Multiprogramming may be a black box,
>> but it is not magic. There is an underlying reality of how threads
>> are dispatched.
>>
>
> For those not familiar with the Cray-3's awesome computing power:
> http://dictionary.die.net/infinite%20loop


Corny and a wasted bandwidth of banter because Cray residence times
are predictable. Not random.


--
HLS