[webkit-dev] Stuck... again (Conserative GC)
Justin Haygood
justin at xiondigital.net
Sun Jun 12 09:21:34 PDT 2005
Thank you, I got it fixed.
At least the license of the Boehm GC allows blatent copy/pasting into
LGPLed sources ;-) .
If it works, expect a patch by the end of the week.
Maciej Stachowiak wrote:
>
> On Jun 11, 2005, at 3:16 PM, Justin Haygood wrote:
>
>> the Win32 API simply does not allow getting the base stack address of
>> a thread, because:
>>
>> 1. not stable.. Windows *WILL* and *DOES* move that base address at will.
>
>
> This part seems unlikely - I could imagine moving the physical address
> of the stack, but what would be the point of moving the virtual
> address? Further, this would break any code that kept a pointer to
> anything on the stack.
>
> But as Darin pointed out, it doesn't matter, because you only need to
> get it at one particular point in time, it does not need to be stable
> for all time.
>
>> 2. Its exclusively chosen and managed by Windows itself.. no ands,
>> buts, or ors about it.
>
>
> It's ok that Windows chooses it - it's chosen by the OS on pretty much
> all platforms. We don't need to change the stack base, just to get it.
>
>> What would be an alternative way to implement a conservative GC that
>> I can use?
>
>
> My suggestion for how to research this would be to look at the code
> for the Boehm garbage collector. This is a portable conservative GC
> implementation for C++, so they must have some way of getting the
> range of the stack on windows. I'm not sure if the Boehm GC is
> threadsafe, but as I pointed out it should be sufficient to just get
> the stack base for the current thread or for the main thread, and to
> disable marking of other threads.
>
> http://www.hpl.hp.com/personal/Hans_Boehm/gc/
>
> I took a quick peek in the source and it does appear to have a way to
> get the stack base on win32.
>
> Regards,
> Maciej
>
>
More information about the webkit-dev
mailing list