Rotor copies generation 0, and does mark and sweep on generation 1. Are you proposing to build a semi-space collector, which bounces objects back and forth between two spaces? Large objects can be very expensive to scan for interior pointers and to copy, which means that mark and sweep is a good strategy once they get to a certain size. This is also part of what Rotor does now. With regard to your question, it should certainly be possible to use the handle table with various kinds of collection algorithm, since support is already there for both copy and mark and sweep. You'll notice that handle collection uses a callback function, GCHeap::Promote, that has the check for generation 0 hardwired into it, which results in calls to either copy_object_simple or mark_object_simple. At the very least, this callback would need to be modified to make the handle table stuff work with other collection strategies. To make everything else work (more than the handle table) would involve more changes, I have no doubt... Hope this is helpful. -- David ________________________________
From: Archana [mailto:[EMAIL PROTECTED]] Sent: Mon 2/10/2003 5:29 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] object handle table interface Hi, Can the Object handle table interface be used as it is, with a GC that does copying collection for both minor and major collections (unlike rotor that chooses to do a mark-sweep for a major one). Are there any changes that the developer needs to make for this to work? thanks and regards, archana