On my part. Here's a way we can dodge the whole neonate, infant mortality nonsense.
Instead of marking everything dead at the beginning of a DOD run, which'll get us the most aggressive cleanup, we mark things dead at the *end* of the run. Then we also allocate all our headers marked as live on allocation, and make sure there's some minimum number of free headers after the end of a DOD run to make sure we don't collect too soon. This'll mean we don't have a neonate problem, though we trade that off with having all headers live through at least one DOD sweep. We can, if we want, have a separate DOD routine that does the mark as dead first (and last) that the explicit DOD trigger op can use so we don't have to worry about things living longer than they should. We could call them conservative_DOD and aggressive_DOD or something along those lines, if we wanted. -- Dan --------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk