On Sun, Aug 06, 2000 at 08:33:52AM -0400, John Tobey wrote:
> If the stuff lives in an arena, have one mutex-init lock per page of
> the arena. I imagine every arena page will be aligned on 4k or so and
> will have a structure at the beginning containing the interpreter
> pointer and stuff like this mutex. This structure will be found by
> masking the final bits of the variable_data pointer.
>
> struct arena_page_header {
> Interpreter* owner;
> Lock share_init_lock;
> /* ... ? */
> };
>
> struct arena_page_header* sv_get_page_header(SV* sv) {
> return (struct arena_page_header*)sv->variable_data & ~0xfff;
> }
>
> void sv_init_mutex(SV* sv) {
> Lock* init_lock = &sv_get_page_header(sv)->share_init_lock;
> lock(init_lock);
> sv_upgrade_to_shared(sv);
> /* sv_lock(sv); */
> unlock(init_lock);
> }
*sigh* I need more sleep. sv_lock(sv) here is misplaced; sv_upgrade
needs to hold the lock that it creates. This share_init_lock would be
better named simply C<lock>, since it's the same one that will be used
for moving data around, allocating and deallocating in the arena.
-John
> This avoids requiring non-shared values to contain individual mutexen.
- Re: RFC 35 / Re: perl6-internals-gc sublist Nick Ing-Simmons
- Re: RFC 35 / Re: perl6-internals-gc sublist Dan Sugalski
- Re: RFC 35 / Re: perl6-internals-gc sublist Chaim Frenkel
- Re: RFC 35 / Re: perl6-internals-gc sublist Dan Sugalski
- Re: RFC 35 / Re: perl6-internals-gc sublist Chaim Frenkel
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Re: RFC 35 / Re: perl6-internals-gc sublist Dan Sugalski
- Re: RFC 35 / Re: perl6-internals-gc sublist Ken Fox
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Re: RFC 35 / Re: perl6-internals-gc sublist Dan Sugalski
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Re: RFC 35 / Re: perl6-internals-gc sublist Ken Fox
- Re: RFC 35 / Re: perl6-internals-gc sublist Dan Sugalski
- Re: RFC 35 / Re: perl6-internals-gc sublist John Tobey
- Multi-object locks (was Re: RFC 35 / Re: perl6-internals-... Chaim Frenkel
- Re: Multi-object locks (was Re: RFC 35 / Re: perl6-intern... Dan Sugalski
- Re: Multi-object locks (was Re: RFC 35 / Re: perl6-inte... Chaim Frenkel
- Re: Multi-object locks (was Re: RFC 35 / Re: perl6-intern... Larry Wall
- Re: Multi-object locks (was Re: RFC 35 / Re: perl6-intern... Chaim Frenkel
