Changeset View
Changeset View
Standalone View
Standalone View
contrib/lua/src/lstate.h
/* | /* | ||||
** $Id: lstate.h,v 2.133 2016/12/22 13:08:50 roberto Exp $ | ** $Id: lstate.h,v 2.133.1.1 2017/04/19 17:39:34 roberto Exp $ | ||||
** Global State | ** Global State | ||||
** See Copyright Notice in lua.h | ** See Copyright Notice in lua.h | ||||
*/ | */ | ||||
#ifndef lstate_h | #ifndef lstate_h | ||||
#define lstate_h | #define lstate_h | ||||
#include "lua.h" | #include "lua.h" | ||||
Show All 10 Lines | |||||
** belong to one (and only one) of these lists, using field 'next' of | ** belong to one (and only one) of these lists, using field 'next' of | ||||
** the 'CommonHeader' for the link: | ** the 'CommonHeader' for the link: | ||||
** | ** | ||||
** 'allgc': all objects not marked for finalization; | ** 'allgc': all objects not marked for finalization; | ||||
** 'finobj': all objects marked for finalization; | ** 'finobj': all objects marked for finalization; | ||||
** 'tobefnz': all objects ready to be finalized; | ** 'tobefnz': all objects ready to be finalized; | ||||
** 'fixedgc': all objects that are not to be collected (currently | ** 'fixedgc': all objects that are not to be collected (currently | ||||
** only small strings, such as reserved words). | ** only small strings, such as reserved words). | ||||
** | |||||
** Moreover, there is another set of lists that control gray objects. | |||||
** These lists are linked by fields 'gclist'. (All objects that | |||||
** can become gray have such a field. The field is not the same | |||||
** in all objects, but it always has this name.) Any gray object | |||||
** must belong to one of these lists, and all objects in these lists | |||||
** must be gray: | |||||
** | |||||
** 'gray': regular gray objects, still waiting to be visited. | |||||
** 'grayagain': objects that must be revisited at the atomic phase. | |||||
** That includes | |||||
** - black objects got in a write barrier; | |||||
** - all kinds of weak tables during propagation phase; | |||||
** - all threads. | |||||
** 'weak': tables with weak values to be cleared; | |||||
** 'ephemeron': ephemeron tables with white->white entries; | |||||
** 'allweak': tables with weak keys and/or weak values to be cleared. | |||||
** The last three lists are used only during the atomic phase. | |||||
*/ | */ | ||||
struct lua_longjmp; /* defined in ldo.c */ | struct lua_longjmp; /* defined in ldo.c */ | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 199 Lines • Show Last 20 Lines |