Thanks, but your description of cyclic_ptr is pretty far off the mark.
Sorry -- hopefully you'll forgive my ignorance. I'm just throwing out what I understand to be the case, in the hopes that someone (such as yourself) would set me straight...
It does not maintain a global map, and copying cyclic_ptr cost the same as copying shared_ptr.
OK, I'll have to review the old messages again. I thought someone had said cyclic_ptr used a global map. Sorry. I suppose better yet would be for me to study your actual *code*...
Do you do a raw scan of memory, like sp_collector, then? (i.e. not perfect discovery)
The special assignment mode is used only during the mark phase of a collection, and costs more or less the same as any other discovery method.
Suppose I have the structure:
struct Image { char huge_image[ONE_ZILLION]; cyclic_ptr<whatever> ptr; };
As I understand it, in order to discover 'ptr', you'd invoke operator=() on each Image structure you came to. Correct, or incorrect?
- Chuck Messenger
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost