Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r164:a1263ec3c083
Date: 2013-06-17 13:15 +0200
http://bitbucket.org/pypy/stmgc/changeset/a1263ec3c083/

Log:    Comments

diff --git a/c4/nursery.h b/c4/nursery.h
--- a/c4/nursery.h
+++ b/c4/nursery.h
@@ -6,15 +6,35 @@
 #endif
 
 
-#define NURSERY_FIELDS_DECL                             \
-    char *nursery_current;                              \
-    char *nursery_end;                                  \
-    char *nursery_base;                                 \
-    struct GcPtrList old_objects_to_trace;              \
-    struct GcPtrList public_with_young_copy;            \
-    long num_private_from_protected_known_old;          \
+#define NURSERY_FIELDS_DECL                                             \
+    /* the nursery */                                                   \
+    char *nursery_current;                                              \
+    char *nursery_end;                                                  \
+    char *nursery_base;                                                 \
+                                                                        \
+    /* Between collections, we add to 'old_objects_to_trace' the        \
+       private objects that are old but may contain pointers to         \
+       young objects.  During minor collections the same list is        \
+       used to record all other old objects pending tracing; in         \
+       other words minor collection is a process that works             \
+       until the list is empty again. */                                \
+    struct GcPtrList old_objects_to_trace;                              \
+                                                                        \
+    /* 'public_with_young_copy' is a list of all public objects         \
+       that are outdated and whose 'h_revision' points to a             \
+       young object. */                                                 \
+    struct GcPtrList public_with_young_copy;                            \
+                                                                        \
+    /* These numbers are initially zero, but after a minor              \
+       collection, they are set to the size of the two lists            \
+       'private_from_protected' and 'list_of_read_objects'.             \
+       It's used on the following minor collection, if we're            \
+       still in the same transaction, to know that the initial          \
+       part of the lists cannot contain young objects any more. */      \
+    long num_private_from_protected_known_old;                          \
     long num_read_objects_known_old;
 
+
 struct tx_descriptor;  /* from et.h */
 
 void stmgc_init_nursery(void);
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to