I just read through the chapter 7 preview, very good BTW. I had a question about the part on Polling the GC to say the thread is at a safe point. I recalled reading in the .NET SDK docs[1] that aborting a thread (Thread.Abort) will require the CLR to wait till the thread is at a safe point to abort it.
Why is this? Because the CLR wants to be nice and not just hijack the thread and send the exception? Because the CLR Threads don't necessarily need to map to OS threads(although I think all CLR implementations now do)? anything to do with the Stack, like what GC needs? ??? TIA -bc [1] ms- help://MS.NETFrameworkSDK/cpguidenf/html/cpconthreadsuspendgarbagecollection safepoints.htm