[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Garbage Collector Problem
- From: Roberto Ierusalimschy <roberto@...>
- Date: Mon, 1 Sep 2014 10:33:22 -0300
> > Can you check whether the table is handled again by 'traverseephemeron'
> > when 'atomic' is called? It should be (through the call to
> > 'retraversegrays'), and this late 'traverseephemeron' should mark the
> > callback...
I guess I found the bug. ''retraversegrays' does not traverse 'allweaks'...
Can you try the following patch?
--- lgc.c 2013/04/26 18:22:05 2.140.1.2
+++ lgc.c 2014/09/01 13:24:33
@@ -403,7 +403,7 @@
reallymarkobject(g, gcvalue(gval(n))); /* mark it now */
}
}
- if (prop)
+ if (g->gcstate != GCSatomic || prop)
linktable(h, &g->ephemeron); /* have to propagate again */
else if (hasclears) /* does table have white keys? */
linktable(h, &g->allweak); /* may have to clean white keys */
-- Roberto