Boost logo

Boost :

From: Larry Evans (cppljevans_at_[hidden])
Date: 2007-09-18 08:48:56


On 09/17/07 13:31, Achilleas Margaritis wrote:
> O/H Larry Evans έγραψε:
>> On 09/17/07 03:30, Achilleas Margaritis wrote:
>>> Larry Evans wrote:
>>>> On 09/16/07 16:56, Achilleas Margaritis wrote:
>> [snip]
>>>> How does this collector determine the location of pointers on the stack
>>>> and within the heap?
>>> An internal bit map is used as a pointer database. Each bit represents
>>> one pointer location in memory.
[snip]
I'm still fuzzy about how this collector works. On:

   http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html

there's:

A mark-sweep garbage collector traverses all reachable objects in the
heap by following pointers beginning with the "roots", i.e. pointers
stored in statically allocated or stack allocated program variables. All
such reachable objects are marked. A sweep over the entire heap is the
performed to restore unmarked objects to a free list, so they can be
reallocated.

How does this collector determine whether a pointer in the database
is a root pointer? Wouldn't that method have to be non-portable
or at least dispatch on the OS type to the appropriate method?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk