Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion DOD, mutation, and generational collectors
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Dan Sugalski  
View profile  
 More options Jan 30 2004, 9:48 am
Newsgroups: perl.perl6.internals
From: d...@sidhe.org (Dan Sugalski)
Date: Thu, 29 Jan 2004 08:41:06 -0500
Local: Thurs, Jan 29 2004 8:41 am
Subject: DOD, mutation, and generational collectors
So, while I'm heaping much grumpiness on threads (though I suppose,
as I've been out of touch for a bit maybe you've all solved the
problem. That'd be nice) I've also been thinking about DOD, as
there's a fair amount of overlap in the things that cause problems
for threads and the ones that cause problems for generational garbage
collectors.

For a generational DOD to work we have to have a way to note which
generation a structure's in, as well as trap writes so we know when
you're referencing an old generation from a new, and vice versa.
(Threads have to trap mutations of this stuff, as this is in large
part the bits that need synchronizing on mutation) A short list of
mutating activities that are of issue are:

    *) Setting the PMC data pointer
    *) Resetting the PMC data pointer
    *) Setting the PMC cache pointer
    *) Resetting the PMC cache pointer
    *) Putting a PMC or buffer pointer into a buffer
    *) Altering a buffer's metadata (size or location)

We don't care about most buffer data, just those buffers whose data
are pointers to PMCs or other buffers. (Which argues that strings and
buffers that contain raw data should be allocated from different
pools than buffers that contain pointers to DOD-able data)

I think, then, that we'll want to intercept all these activities,
which means that we need to have API facilities for them. Before we
do that, though, I want to make sure there's nothing I missed from
that list.
--
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
d...@sidhe.org                         have teddy bears and even
                                       teddy bears get drunk


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.