try to avoid sweeping new objects created with new white (and

therefore not collectable in the current cycle)
This commit is contained in:
Roberto Ierusalimschy
2012-05-22 14:32:25 -03:00
parent 398811a313
commit b36b4b521f
3 changed files with 43 additions and 27 deletions

View File

@@ -1,5 +1,5 @@
/*
** $Id: lstate.h,v 2.77 2012/02/01 21:57:15 roberto Exp roberto $
** $Id: lstate.h,v 2.78 2012/05/20 20:36:44 roberto Exp roberto $
** Global State
** See Copyright Notice in lua.h
*/
@@ -126,7 +126,8 @@ typedef struct global_State {
int sweepstrgc; /* position of sweep in `strt' */
GCObject *allgc; /* list of all collectable objects */
GCObject *finobj; /* list of collectable objects with finalizers */
GCObject **sweepgc; /* current position of sweep */
GCObject **sweepgc; /* current position of sweep in list 'allgc' */
GCObject **sweepfin; /* current position of sweep in list 'finobj' */
GCObject *gray; /* list of gray objects */
GCObject *grayagain; /* list of objects to be traversed atomically */
GCObject *weak; /* list of tables with weak values */