aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-09-06 14:38:39 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-09-06 14:38:39 -0300
commita04e0ffdb9be42a77b5657f46cac8d7faa5a0f43 (patch)
treeeb96915b808cf929015452bd08ca1e5c571683ce
parent007b8c7a01eaa97d796561a19c7e9af1ec474495 (diff)
downloadlua-a04e0ffdb9be42a77b5657f46cac8d7faa5a0f43.tar.gz
lua-a04e0ffdb9be42a77b5657f46cac8d7faa5a0f43.tar.bz2
lua-a04e0ffdb9be42a77b5657f46cac8d7faa5a0f43.zip
Rename of fields in global state that control GC
All fields in the global state that control the pace of the garbage collector prefixed with 'GC'.
-rw-r--r--lapi.c4
-rw-r--r--lgc.c28
-rw-r--r--lmem.c8
-rw-r--r--lstate.c16
-rw-r--r--lstate.h8
5 files changed, 32 insertions, 32 deletions
diff --git a/lapi.c b/lapi.c
index 1f4e9f96..98d23665 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1190,11 +1190,11 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
1190 } 1190 }
1191 case LUA_GCCOUNT: { 1191 case LUA_GCCOUNT: {
1192 /* GC values are expressed in Kbytes: #bytes/2^10 */ 1192 /* GC values are expressed in Kbytes: #bytes/2^10 */
1193 res = cast_int(g->totalbytes >> 10); 1193 res = cast_int(g->GCtotalbytes >> 10);
1194 break; 1194 break;
1195 } 1195 }
1196 case LUA_GCCOUNTB: { 1196 case LUA_GCCOUNTB: {
1197 res = cast_int(g->totalbytes & 0x3ff); 1197 res = cast_int(g->GCtotalbytes & 0x3ff);
1198 break; 1198 break;
1199 } 1199 }
1200 case LUA_GCSTEP: { 1200 case LUA_GCSTEP: {
diff --git a/lgc.c b/lgc.c
index 93d2249b..92034635 100644
--- a/lgc.c
+++ b/lgc.c
@@ -290,7 +290,7 @@ GCObject *luaC_newobj (lua_State *L, lu_byte tt, size_t sz) {
290** (only closures can), and a userdata's metatable must be a table. 290** (only closures can), and a userdata's metatable must be a table.
291*/ 291*/
292static void reallymarkobject (global_State *g, GCObject *o) { 292static void reallymarkobject (global_State *g, GCObject *o) {
293 g->marked++; 293 g->GCmarked++;
294 switch (o->tt) { 294 switch (o->tt) {
295 case LUA_VSHRSTR: 295 case LUA_VSHRSTR:
296 case LUA_VLNGSTR: { 296 case LUA_VLNGSTR: {
@@ -401,7 +401,7 @@ static void cleargraylists (global_State *g) {
401*/ 401*/
402static void restartcollection (global_State *g) { 402static void restartcollection (global_State *g) {
403 cleargraylists(g); 403 cleargraylists(g);
404 g->marked = NFIXED; 404 g->GCmarked = NFIXED;
405 markobject(g, g->mainthread); 405 markobject(g, g->mainthread);
406 markvalue(g, &g->l_registry); 406 markvalue(g, &g->l_registry);
407 markmt(g); 407 markmt(g);
@@ -781,7 +781,7 @@ static void freeupval (lua_State *L, UpVal *uv) {
781 781
782 782
783static void freeobj (lua_State *L, GCObject *o) { 783static void freeobj (lua_State *L, GCObject *o) {
784 G(L)->totalobjs--; 784 G(L)->GCtotalobjs--;
785 switch (o->tt) { 785 switch (o->tt) {
786 case LUA_VPROTO: 786 case LUA_VPROTO:
787 luaF_freeproto(L, gco2p(o)); 787 luaF_freeproto(L, gco2p(o));
@@ -1052,7 +1052,7 @@ void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt) {
1052** approximately (marked * pause / 100). 1052** approximately (marked * pause / 100).
1053*/ 1053*/
1054static void setpause (global_State *g) { 1054static void setpause (global_State *g) {
1055 l_obj threshold = applygcparam(g, PAUSE, g->marked); 1055 l_obj threshold = applygcparam(g, PAUSE, g->GCmarked);
1056 l_obj debt = threshold - gettotalobjs(g); 1056 l_obj debt = threshold - gettotalobjs(g);
1057 if (debt < 0) debt = 0; 1057 if (debt < 0) debt = 0;
1058 luaE_setdebt(g, debt); 1058 luaE_setdebt(g, debt);
@@ -1236,7 +1236,7 @@ static void finishgencycle (lua_State *L, global_State *g) {
1236** in generational mode. 1236** in generational mode.
1237*/ 1237*/
1238static void minor2inc (lua_State *L, global_State *g, lu_byte kind) { 1238static void minor2inc (lua_State *L, global_State *g, lu_byte kind) {
1239 g->GCmajorminor = g->marked; /* number of live objects */ 1239 g->GCmajorminor = g->GCmarked; /* number of live objects */
1240 g->gckind = kind; 1240 g->gckind = kind;
1241 g->reallyold = g->old1 = g->survival = NULL; 1241 g->reallyold = g->old1 = g->survival = NULL;
1242 g->finobjrold = g->finobjold1 = g->finobjsur = NULL; 1242 g->finobjrold = g->finobjold1 = g->finobjsur = NULL;
@@ -1260,7 +1260,7 @@ static void minor2inc (lua_State *L, global_State *g, lu_byte kind) {
1260static int checkminormajor (global_State *g, l_obj addedold1) { 1260static int checkminormajor (global_State *g, l_obj addedold1) {
1261 l_obj step = applygcparam(g, MINORMUL, g->GCmajorminor); 1261 l_obj step = applygcparam(g, MINORMUL, g->GCmajorminor);
1262 l_obj limit = applygcparam(g, MINORMAJOR, g->GCmajorminor); 1262 l_obj limit = applygcparam(g, MINORMAJOR, g->GCmajorminor);
1263 return (addedold1 >= (step >> 1) || g->marked >= limit); 1263 return (addedold1 >= (step >> 1) || g->GCmarked >= limit);
1264} 1264}
1265 1265
1266/* 1266/*
@@ -1270,7 +1270,7 @@ static int checkminormajor (global_State *g, l_obj addedold1) {
1270*/ 1270*/
1271static void youngcollection (lua_State *L, global_State *g) { 1271static void youngcollection (lua_State *L, global_State *g) {
1272 l_obj addedold1 = 0; 1272 l_obj addedold1 = 0;
1273 l_obj marked = g->marked; /* preserve 'g->marked' */ 1273 l_obj marked = g->GCmarked; /* preserve 'g->GCmarked' */
1274 GCObject **psurvival; /* to point to first non-dead survival object */ 1274 GCObject **psurvival; /* to point to first non-dead survival object */
1275 GCObject *dummy; /* dummy out parameter to 'sweepgen' */ 1275 GCObject *dummy; /* dummy out parameter to 'sweepgen' */
1276 lua_assert(g->gcstate == GCSpropagate); 1276 lua_assert(g->gcstate == GCSpropagate);
@@ -1304,12 +1304,12 @@ static void youngcollection (lua_State *L, global_State *g) {
1304 sweepgen(L, g, &g->tobefnz, NULL, &dummy, &addedold1); 1304 sweepgen(L, g, &g->tobefnz, NULL, &dummy, &addedold1);
1305 1305
1306 /* keep total number of added old1 objects */ 1306 /* keep total number of added old1 objects */
1307 g->marked = marked + addedold1; 1307 g->GCmarked = marked + addedold1;
1308 1308
1309 /* decide whether to shift to major mode */ 1309 /* decide whether to shift to major mode */
1310 if (checkminormajor(g, addedold1)) { 1310 if (checkminormajor(g, addedold1)) {
1311 minor2inc(L, g, KGC_GENMAJOR); /* go to major mode */ 1311 minor2inc(L, g, KGC_GENMAJOR); /* go to major mode */
1312 g->marked = 0; /* avoid pause in first major cycle */ 1312 g->GCmarked = 0; /* avoid pause in first major cycle */
1313 } 1313 }
1314 else 1314 else
1315 finishgencycle(L, g); /* still in minor mode; finish it */ 1315 finishgencycle(L, g); /* still in minor mode; finish it */
@@ -1338,8 +1338,8 @@ static void atomic2gen (lua_State *L, global_State *g) {
1338 sweep2old(L, &g->tobefnz); 1338 sweep2old(L, &g->tobefnz);
1339 1339
1340 g->gckind = KGC_GENMINOR; 1340 g->gckind = KGC_GENMINOR;
1341 g->GCmajorminor = g->marked; /* "base" for number of objects */ 1341 g->GCmajorminor = g->GCmarked; /* "base" for number of objects */
1342 g->marked = 0; /* to count the number of added old1 objects */ 1342 g->GCmarked = 0; /* to count the number of added old1 objects */
1343 finishgencycle(L, g); 1343 finishgencycle(L, g);
1344} 1344}
1345 1345
@@ -1407,14 +1407,14 @@ static int checkmajorminor (lua_State *L, global_State *g) {
1407 l_obj numobjs = gettotalobjs(g); 1407 l_obj numobjs = gettotalobjs(g);
1408 l_obj addedobjs = numobjs - g->GCmajorminor; 1408 l_obj addedobjs = numobjs - g->GCmajorminor;
1409 l_obj limit = applygcparam(g, MAJORMINOR, addedobjs); 1409 l_obj limit = applygcparam(g, MAJORMINOR, addedobjs);
1410 l_obj tobecollected = numobjs - g->marked; 1410 l_obj tobecollected = numobjs - g->GCmarked;
1411 if (tobecollected > limit) { 1411 if (tobecollected > limit) {
1412 atomic2gen(L, g); /* return to generational mode */ 1412 atomic2gen(L, g); /* return to generational mode */
1413 setminordebt(g); 1413 setminordebt(g);
1414 return 0; /* exit incremental collection */ 1414 return 0; /* exit incremental collection */
1415 } 1415 }
1416 } 1416 }
1417 g->GCmajorminor = g->marked; /* prepare for next collection */ 1417 g->GCmajorminor = g->GCmarked; /* prepare for next collection */
1418 return 1; /* stay doing incremental collections */ 1418 return 1; /* stay doing incremental collections */
1419} 1419}
1420 1420
@@ -1692,7 +1692,7 @@ static void fullinc (lua_State *L, global_State *g) {
1692 luaC_runtilstate(L, GCSpause, 1); 1692 luaC_runtilstate(L, GCSpause, 1);
1693 luaC_runtilstate(L, GCScallfin, 1); /* run up to finalizers */ 1693 luaC_runtilstate(L, GCScallfin, 1); /* run up to finalizers */
1694 /* 'marked' must be correct after a full GC cycle */ 1694 /* 'marked' must be correct after a full GC cycle */
1695 lua_assert(g->marked == gettotalobjs(g)); 1695 lua_assert(g->GCmarked == gettotalobjs(g));
1696 luaC_runtilstate(L, GCSpause, 1); /* finish collection */ 1696 luaC_runtilstate(L, GCSpause, 1); /* finish collection */
1697 setpause(g); 1697 setpause(g);
1698} 1698}
diff --git a/lmem.c b/lmem.c
index 52a4f999..f18ea172 100644
--- a/lmem.c
+++ b/lmem.c
@@ -151,7 +151,7 @@ void luaM_free_ (lua_State *L, void *block, size_t osize) {
151 global_State *g = G(L); 151 global_State *g = G(L);
152 lua_assert((osize == 0) == (block == NULL)); 152 lua_assert((osize == 0) == (block == NULL));
153 callfrealloc(g, block, osize, 0); 153 callfrealloc(g, block, osize, 0);
154 g->totalbytes -= osize; 154 g->GCtotalbytes -= osize;
155} 155}
156 156
157 157
@@ -181,10 +181,10 @@ void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) {
181 if (l_unlikely(newblock == NULL && nsize > 0)) { 181 if (l_unlikely(newblock == NULL && nsize > 0)) {
182 newblock = tryagain(L, block, osize, nsize); 182 newblock = tryagain(L, block, osize, nsize);
183 if (newblock == NULL) /* still no memory? */ 183 if (newblock == NULL) /* still no memory? */
184 return NULL; /* do not update 'totalbytes' */ 184 return NULL; /* do not update 'GCtotalbytes' */
185 } 185 }
186 lua_assert((nsize == 0) == (newblock == NULL)); 186 lua_assert((nsize == 0) == (newblock == NULL));
187 g->totalbytes += nsize - osize; 187 g->GCtotalbytes += nsize - osize;
188 return newblock; 188 return newblock;
189} 189}
190 190
@@ -209,7 +209,7 @@ void *luaM_malloc_ (lua_State *L, size_t size, int tag) {
209 if (newblock == NULL) 209 if (newblock == NULL)
210 luaM_error(L); 210 luaM_error(L);
211 } 211 }
212 g->totalbytes += size; 212 g->GCtotalbytes += size;
213 return newblock; 213 return newblock;
214 } 214 }
215} 215}
diff --git a/lstate.c b/lstate.c
index eb71ed8c..f4c9081d 100644
--- a/lstate.c
+++ b/lstate.c
@@ -74,15 +74,15 @@ typedef struct LG {
74 74
75/* 75/*
76** set GCdebt to a new value keeping the real number of allocated 76** set GCdebt to a new value keeping the real number of allocated
77** objects (totalobjs - GCdebt) invariant and avoiding overflows in 77** objects (GCtotalobjs - GCdebt) invariant and avoiding overflows in
78** 'totalobjs'. 78** 'GCtotalobjs'.
79*/ 79*/
80void luaE_setdebt (global_State *g, l_obj debt) { 80void luaE_setdebt (global_State *g, l_obj debt) {
81 l_obj tb = gettotalobjs(g); 81 l_obj tb = gettotalobjs(g);
82 lua_assert(tb > 0); 82 lua_assert(tb > 0);
83 if (debt > MAX_LOBJ - tb) 83 if (debt > MAX_LOBJ - tb)
84 debt = MAX_LOBJ - tb; /* will make 'totalobjs == MAX_LMEM' */ 84 debt = MAX_LOBJ - tb; /* will make GCtotalobjs == MAX_LOBJ */
85 g->totalobjs = tb + debt; 85 g->GCtotalobjs = tb + debt;
86 g->GCdebt = debt; 86 g->GCdebt = debt;
87} 87}
88 88
@@ -269,7 +269,7 @@ static void close_state (lua_State *L) {
269 } 269 }
270 luaM_freearray(L, G(L)->strt.hash, cast_sizet(G(L)->strt.size)); 270 luaM_freearray(L, G(L)->strt.hash, cast_sizet(G(L)->strt.size));
271 freestack(L); 271 freestack(L);
272 lua_assert(g->totalbytes == sizeof(LG)); 272 lua_assert(g->GCtotalbytes == sizeof(LG));
273 lua_assert(gettotalobjs(g) == 1); 273 lua_assert(gettotalobjs(g) == 1);
274 (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ 274 (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */
275} 275}
@@ -378,9 +378,9 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud, unsigned seed) {
378 g->gray = g->grayagain = NULL; 378 g->gray = g->grayagain = NULL;
379 g->weak = g->ephemeron = g->allweak = NULL; 379 g->weak = g->ephemeron = g->allweak = NULL;
380 g->twups = NULL; 380 g->twups = NULL;
381 g->totalbytes = sizeof(LG); 381 g->GCtotalbytes = sizeof(LG);
382 g->totalobjs = 1; 382 g->GCtotalobjs = 1;
383 g->marked = 0; 383 g->GCmarked = 0;
384 g->GCdebt = 0; 384 g->GCdebt = 0;
385 setivalue(&g->nilvalue, 0); /* to signal that state is not yet built */ 385 setivalue(&g->nilvalue, 0); /* to signal that state is not yet built */
386 setgcparam(g, PAUSE, LUAI_GCPAUSE); 386 setgcparam(g, PAUSE, LUAI_GCPAUSE);
diff --git a/lstate.h b/lstate.h
index e12ca154..6aa02889 100644
--- a/lstate.h
+++ b/lstate.h
@@ -274,10 +274,10 @@ struct CallInfo {
274typedef struct global_State { 274typedef struct global_State {
275 lua_Alloc frealloc; /* function to reallocate memory */ 275 lua_Alloc frealloc; /* function to reallocate memory */
276 void *ud; /* auxiliary data to 'frealloc' */ 276 void *ud; /* auxiliary data to 'frealloc' */
277 lu_mem totalbytes; /* number of bytes currently allocated */ 277 lu_mem GCtotalbytes; /* number of bytes currently allocated */
278 l_obj totalobjs; /* total number of objects allocated + GCdebt */ 278 l_obj GCtotalobjs; /* total number of objects allocated + GCdebt */
279 l_obj GCdebt; /* objects counted but not yet allocated */ 279 l_obj GCdebt; /* objects counted but not yet allocated */
280 l_obj marked; /* number of objects marked in a GC cycle */ 280 l_obj GCmarked; /* number of objects marked in a GC cycle */
281 l_obj GCmajorminor; /* auxiliary counter to control major-minor shifts */ 281 l_obj GCmajorminor; /* auxiliary counter to control major-minor shifts */
282 stringtable strt; /* hash table for strings */ 282 stringtable strt; /* hash table for strings */
283 TValue l_registry; 283 TValue l_registry;
@@ -412,7 +412,7 @@ union GCUnion {
412 412
413 413
414/* actual number of total objects allocated */ 414/* actual number of total objects allocated */
415#define gettotalobjs(g) ((g)->totalobjs - (g)->GCdebt) 415#define gettotalobjs(g) ((g)->GCtotalobjs - (g)->GCdebt)
416 416
417 417
418LUAI_FUNC void luaE_setdebt (global_State *g, l_obj debt); 418LUAI_FUNC void luaE_setdebt (global_State *g, l_obj debt);