Correction: I meant another pass over the chain of global handles, not
weak handles.

On Thu, Oct 29, 2009 at 3:42 PM, Christian Plesner Hansen
<[email protected]> wrote:
> Right, it would cost another pass over the chain of weak handles.  We
> might be able to avoid that if we had more control over handle chain
> traversal during gc, where we could preprocess the handle chain, for
> instance divide the handles into buckets depending on their state in
> one pass, and from then on only look into the relevant buckets.
>
> On Thu, Oct 29, 2009 at 2:46 PM, Anton Muhin <[email protected]> wrote:
>> Christian, nice generalization of only held by really weak handler.  I
>> will need some more time to think about it.  One immediate concern: if
>> I got you algorithm right, that would require traversal starting from
>> only weakly reachable nodes which takes additional time (we didn't
>> need this traversal before), so there might be perf regressions.
>>
>> yours,
>> anton.
>>
>> On Thu, Oct 29, 2009 at 3:56 PM, Christian Plesner Hansen
>> <[email protected]> wrote:
>>> You're right, there is a problem here but I think we can fix it.
>>> Right now marking happens in several phases:
>>>
>>>  - mark everything reachable from roots
>>>  - remember which standard weak handles hold unmarked objects
>>>  - mark those objects as well
>>>  - finish gc
>>>  - execute weak callbacks
>>>
>>> If we extend this with another phase it should solve the problem:
>>>
>>>  - mark everything reachable from roots
>>>  - remember which standard weak handles hold unmarked objects
>>>  - mark those objects
>>>  - remember which really weak handles hold unmarked objects
>>>  - finish gc
>>>  - execute weak and really-weak callbacks
>>>
>>> This way we conservatively assume that any object held transitively by
>>> standard weak handle is unsafe to collect eagerly through a really
>>> weak handle.
>>>
>>>
>>> -- Christian
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to