Holy cow, I wrote a book!
Life was simpler back in the old days.
Back in the old days,
processes were believed to be in control of their threads.
You can see this in the "old fashioned" way of exiting a process,
namely by exiting all the threads.
This method works only if the process knows about all the
threads running in it and can get each one to clean up
when it's time for the process to exit.
In other words, the old-fashioned theory was that when
a process wanted to exit, it would do something like this:
Of course, that was before the introduction of programming
constructions that created threads that the main program didn't know
about and therefore had no control over.
Things like the thread pool, RPC worker threads,
DLLs that create worker threads
(something still not well-understood even today).
The world today is very different.
Next time, we'll look at how this simple view of processes
and threads affects the design of how processes exit.
Still, you learned enough today to be able to solve
this person's problem.