Beispiel #1
0
        private static unsafe Thread CollectBody(Thread currentThread,
                                                 int generation)
        {
            // NOTE: Refrain from creating any GC safe points in this
            // method.  That includes allocation and system calls,
            // which in turn includes print statements.  Putting a GC
            // safe point before the call to the collector may cause
            // infinite recursion.  Putting a GC safe point after the
            // call to the collector may cause recursion when other
            // threads are triggering collections before the current
            // thread exits this method. (Bjarne)
            int currentThreadIndex = currentThread.threadIndex;

            installedGC.CollectStoppable(currentThreadIndex, generation);
            return(Thread.threadTable[currentThreadIndex]);
        }