diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-12-06 10:49:56 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-12-06 10:49:56 -0300 |
commit | 789e7acdea3ada96bd00b7aac6d82e805bfee85c (patch) | |
tree | b9901b2700d11d01bfe320244a545f41d106b973 /lstate.h | |
parent | 74b401353892318cd7ded6ca149258feb21d1724 (diff) | |
download | lua-789e7acdea3ada96bd00b7aac6d82e805bfee85c.tar.gz lua-789e7acdea3ada96bd00b7aac6d82e805bfee85c.tar.bz2 lua-789e7acdea3ada96bd00b7aac6d82e805bfee85c.zip |
Major collections done incrementally
Major collections do not need to "stop the world". Still pending:
criteria for shifts minor-major, shifts generational-incremental.
Diffstat (limited to 'lstate.h')
-rw-r--r-- | lstate.h | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -149,8 +149,8 @@ struct lua_longjmp; /* defined in ldo.c */ | |||
149 | 149 | ||
150 | /* kinds of Garbage Collection */ | 150 | /* kinds of Garbage Collection */ |
151 | #define KGC_INC 0 /* incremental gc */ | 151 | #define KGC_INC 0 /* incremental gc */ |
152 | #define KGC_GEN 1 /* generational gc */ | 152 | #define KGC_GENMINOR 1 /* generational gc in minor (regular) mode */ |
153 | #define KGC_GENMAJOR 2 /* generational in "major" mode */ | 153 | #define KGC_GENMAJOR 2 /* generational in major mode */ |
154 | 154 | ||
155 | 155 | ||
156 | typedef struct stringtable { | 156 | typedef struct stringtable { |
@@ -259,7 +259,7 @@ typedef struct global_State { | |||
259 | l_obj totalobjs; /* total number of objects allocated + GCdebt */ | 259 | l_obj totalobjs; /* total number of objects allocated + GCdebt */ |
260 | l_obj GCdebt; /* objects counted but not yet allocated */ | 260 | l_obj GCdebt; /* objects counted but not yet allocated */ |
261 | l_obj marked; /* number of objects marked in a GC cycle */ | 261 | l_obj marked; /* number of objects marked in a GC cycle */ |
262 | l_obj GClastmajor; /* objects at last major collection */ | 262 | l_obj GCmajorminor; /* auxiliar counter to control major-minor shifts */ |
263 | stringtable strt; /* hash table for strings */ | 263 | stringtable strt; /* hash table for strings */ |
264 | TValue l_registry; | 264 | TValue l_registry; |
265 | TValue nilvalue; /* a nil value */ | 265 | TValue nilvalue; /* a nil value */ |