[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fluids
From: |
Ludovic Courtès |
Subject: |
Fluids |
Date: |
Sun, 14 Feb 2010 15:32:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Hi Andy!
Andy Wingo <address@hidden> writes:
> But you can't / shouldn't make a new fluid every time you enter a
> `catch', because currently fluids are never garbage collected! We really
> need to fix this. I think it's a 1.9 regression.
Indeed. We should use a weak vector or some such instead of the current
scm_gc_malloc’d array.
> To do so effectively, I think you'd need to make fluid objects store
> their values directly, so that the GC doesn't have to go through hoops
> to know that they're collectable. Ideally they would get their values
> via pthread_getspecific; but that would defeat some bits of ours about
> "dynamic states" (not a very useful concept IMO), and the GC would need
> help. Actually it would be nice if libgc supported thread-local
> allocations. (Does it?)
I think dynamically allocating thread-local storage can only be done
with pthread_key_create (). Libgc knows how to scan pthread keys. So
we could have fluids be wrappers around pthread keys and fluid-ref would
boil down to pthread_getspecific (). Then we wouldn’t even need the
fluid number hack.
Is it what you had in mind?
Thanks,
Ludo’.
- catch, throw, prompt, control, fluids, garbage collection, Andy Wingo, 2010/02/14
- Fluids,
Ludovic Courtès <=
- Plan for the next release, Ludovic Courtès, 2010/02/14
- Re: catch, throw, prompt, control, fluids, garbage collection, Andy Wingo, 2010/02/15
- Re: catch, throw, prompt, control, fluids, garbage collection, Andy Wingo, 2010/02/18
- Re: catch, throw, prompt, control, fluids, garbage collection, Andy Wingo, 2010/02/24
- Re: catch, throw, prompt, control, fluids, garbage collection, Andy Wingo, 2010/02/26
- Re: catch, throw, prompt, control, fluids, garbage collection, Neil Jerram, 2010/02/28