|
From: | Han-Wen Nienhuys |
Subject: | Re: [PATCH] Fixing `gc-live-object-stats' |
Date: | Thu, 17 Nov 2005 15:12:14 +0100 |
User-agent: | Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929) |
Ludovic Courtès wrote:
BTW, looking at the code of `scm_i_sweep_some_cards ()', it looks like cards can be initialized more than once in the event where THRESHOLD is reached before NEXT_FREE reached the upper boundary of SEG. In such a case, SEG->FIRST_TIME will remain equal to 1, and thus, the next time this function is called on SEG, `scm_i_init_card_freelist ()' will be called again for each of SEG's cards. Did I miss something?
Yes. Sweeping always starts with NEXT_FREE, which is incremented for each call, so each card from the segment is only passed over once with FIRST_TIME. FIRST_TIME refers to the fact that no GC has taken place for the segment at hand.
-- Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen
[Prev in Thread] | Current Thread | [Next in Thread] |