diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-05-26 16:14:29 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-05-26 16:14:29 -0300 |
commit | 72d82a296c1430a1d2bb3fac8ed8cbfb97868707 (patch) | |
tree | 4ea80148c5f1bfd38f0e7ca1cb8ef82e00e7e19c /lstate.h | |
parent | 4804bbd9bbfb89deb8a6c7dc2bc65601a701222b (diff) | |
download | lua-72d82a296c1430a1d2bb3fac8ed8cbfb97868707.tar.gz lua-72d82a296c1430a1d2bb3fac8ed8cbfb97868707.tar.bz2 lua-72d82a296c1430a1d2bb3fac8ed8cbfb97868707.zip |
revamping the incremental collector
Some simplifications (not counting bytes, couting only slots visited;
no more 'gcfinnum'); more GC parameters; using vararg in 'lua_gc' to
set parameters in different GC modes
Diffstat (limited to 'lstate.h')
-rw-r--r-- | lstate.h | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lstate.h,v 2.140 2017/05/04 13:32:01 roberto Exp roberto $ | 2 | ** $Id: lstate.h,v 2.141 2017/05/13 13:54:47 roberto Exp roberto $ |
3 | ** Global State | 3 | ** Global State |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -139,7 +139,6 @@ typedef struct global_State { | |||
139 | void *ud; /* auxiliary data to 'frealloc' */ | 139 | void *ud; /* auxiliary data to 'frealloc' */ |
140 | l_mem totalbytes; /* number of bytes currently allocated - GCdebt */ | 140 | l_mem totalbytes; /* number of bytes currently allocated - GCdebt */ |
141 | l_mem GCdebt; /* bytes allocated not yet compensated by the collector */ | 141 | l_mem GCdebt; /* bytes allocated not yet compensated by the collector */ |
142 | lu_mem GCmemtrav; /* memory traversed by the GC */ | ||
143 | lu_mem GCestimate; /* an estimate of the non-garbage memory in use */ | 142 | lu_mem GCestimate; /* an estimate of the non-garbage memory in use */ |
144 | stringtable strt; /* hash table for strings */ | 143 | stringtable strt; /* hash table for strings */ |
145 | TValue l_registry; | 144 | TValue l_registry; |
@@ -151,6 +150,9 @@ typedef struct global_State { | |||
151 | lu_byte genmajormul; /* control for major generational collections */ | 150 | lu_byte genmajormul; /* control for major generational collections */ |
152 | lu_byte gcrunning; /* true if GC is running */ | 151 | lu_byte gcrunning; /* true if GC is running */ |
153 | lu_byte gcemergency; /* true if this is an emergency collection */ | 152 | lu_byte gcemergency; /* true if this is an emergency collection */ |
153 | lu_byte gcpause; /* size of pause between successive GCs */ | ||
154 | lu_byte gcstepmul; /* GC "speed" */ | ||
155 | lu_byte gcstepsize; /* (log2 of) GC granularity */ | ||
154 | GCObject *allgc; /* list of all collectable objects */ | 156 | GCObject *allgc; /* list of all collectable objects */ |
155 | GCObject **sweepgc; /* current position of sweep in list */ | 157 | GCObject **sweepgc; /* current position of sweep in list */ |
156 | GCObject *finobj; /* list of collectable objects with finalizers */ | 158 | GCObject *finobj; /* list of collectable objects with finalizers */ |
@@ -170,9 +172,6 @@ typedef struct global_State { | |||
170 | GCObject *finobjold; /* list of old objects with finalizers */ | 172 | GCObject *finobjold; /* list of old objects with finalizers */ |
171 | GCObject *finobjrold; /* list of really old objects with finalizers */ | 173 | GCObject *finobjrold; /* list of really old objects with finalizers */ |
172 | struct lua_State *twups; /* list of threads with open upvalues */ | 174 | struct lua_State *twups; /* list of threads with open upvalues */ |
173 | unsigned int gcfinnum; /* number of finalizers to call in each GC step */ | ||
174 | int gcpause; /* size of pause between successive GCs */ | ||
175 | int gcstepmul; /* GC 'granularity' */ | ||
176 | lua_CFunction panic; /* to be called in unprotected errors */ | 175 | lua_CFunction panic; /* to be called in unprotected errors */ |
177 | struct lua_State *mainthread; | 176 | struct lua_State *mainthread; |
178 | const lua_Number *version; /* pointer to version number */ | 177 | const lua_Number *version; /* pointer to version number */ |