|
On Sep 16, 2011, at 5:50 AM, Gaspard Bucher wrote: After some more investigation, I think this is some edge case bug because I do not see what is wrong with the following pattern: See the recent weak tables and finalization discussion, but I think this is another case of: thread becomes unreachable ... so udata becomes unreachable ... so udata is queued for finalization ... so fenv and everything it leads to is marked in case it's needed for finalization ... so udata_thread gets marked ... so the code to clear weak tables keeps the thread around in your weak table (not shown) for another cycle Then eventually, we finalize udata and bingo we have a path to a finalized userdatum. The other discussion was moving toward a suggestion that the logic for clearing weak tables needed to be moved in the GC process. Mark |