diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2010-05-03 08:24:30 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2010-05-03 08:24:30 -0300 |
commit | 85555646e3e8e1db4f50772ff8ef5c55908cc165 (patch) | |
tree | 30f4169ab0402cbecf378c02642dee38c31e5bf5 | |
parent | 4d871ee973394a0d629894226f2817b3803de205 (diff) | |
download | lua-85555646e3e8e1db4f50772ff8ef5c55908cc165.tar.gz lua-85555646e3e8e1db4f50772ff8ef5c55908cc165.tar.bz2 lua-85555646e3e8e1db4f50772ff8ef5c55908cc165.zip |
invariant must be kept in atomic 'phase' too
-rw-r--r-- | lgc.h | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.h,v 2.32 2010/04/29 21:43:36 roberto Exp roberto $ | 2 | ** $Id: lgc.h,v 2.33 2010/04/30 18:36:45 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -28,13 +28,13 @@ | |||
28 | /* | 28 | /* |
29 | ** Possible states of the Garbage Collector | 29 | ** Possible states of the Garbage Collector |
30 | */ | 30 | */ |
31 | #define GCSpause 0 | 31 | #define GCSpropagate 0 |
32 | #define GCSpropagate 1 | 32 | #define GCSatomic 1 |
33 | #define GCSatomic 2 | 33 | #define GCSsweepstring 2 |
34 | #define GCSsweepstring 3 | 34 | #define GCSsweepudata 3 |
35 | #define GCSsweepudata 4 | 35 | #define GCSsweep 4 |
36 | #define GCSsweep 5 | 36 | #define GCSfinalize 5 |
37 | #define GCSfinalize 6 | 37 | #define GCSpause 6 |
38 | 38 | ||
39 | 39 | ||
40 | #define issweepphase(g) \ | 40 | #define issweepphase(g) \ |
@@ -49,7 +49,7 @@ | |||
49 | ** all objects are white again. During a generational collection, the | 49 | ** all objects are white again. During a generational collection, the |
50 | ** invariant must be kept all times. | 50 | ** invariant must be kept all times. |
51 | */ | 51 | */ |
52 | #define keepinvariant(g) (g->gckind == KGC_GEN || g->gcstate == GCSpropagate) | 52 | #define keepinvariant(g) (g->gckind == KGC_GEN || g->gcstate <= GCSatomic) |
53 | 53 | ||
54 | 54 | ||
55 | #define gcstopped(g) ((g)->GCdebt == MIN_LMEM) | 55 | #define gcstopped(g) ((g)->GCdebt == MIN_LMEM) |