Home | History | Annotate | Download | only in Modules

Lines Matching refs:young

100    the young and middle generations) will always examine roughly the same
414 /* This is in move_unreachable's 'young' list, but
424 * Move it back to move_unreachable's 'young' list,
432 * If gc_refs > 0, it must be in move_unreachable's 'young'
448 /* Move the unreachable objects from young
449 * all objects in young have gc_refs = GC_REACHABLE, and all objects in
451 * gc objects not in young or unreachable still have gc_refs = GC_REACHABLE.
452 * All objects in young after this are directly or indirectly reachable
453 * from outside the original young; and all objects in unreachable are
457 move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
459 PyGC_Head *gc = young->gc.gc_next;
461 /* Invariants: all objects "to the left" of us in young have gc_refs
463 * from outside the young list as it was at entry. All other objects
464 * from the original young "to the left" of us are in unreachable now,
466 * left of us in 'young' now have been scanned, and no objects here
470 while (gc != young) {
475 * original 'young'. Mark it as such, and traverse
478 * call to tp_traverse may append objects to young,
488 (void *)young);
500 * young if that's so, and we'll see it again.
908 PyGC_Head *young; /* the generation we are examining */
944 young = GEN_HEAD(generation);
948 old = young;
955 update_refs(young);
956 subtract_refs(young);
958 /* Leave everything reachable from outside young in young, and move
959 * everything else (in young) to unreachable.
965 move_unreachable(young, &unreachable);
968 if (young != old) {
970 long_lived_pending += gc_list_size(young);
972 gc_list_merge(young, old);
977 untrack_dicts(young);
979 long_lived_total = gc_list_size(young);