Re: [Gc] win32 special treatment in GC_add_roots and GC_remove_roots codepaths

Ivan Maidanski ivmai at mail.ru
Tue Sep 13 07:17:05 PDT 2011


Hi Lucas,

In short words: it is possible to implement but no one spent his time on it yet.
If you feel you could do it - great - send me a patch (against "master" branch).

Regards.

13 09 2011, 00:20 Lucas Meijer <lucas at lucasmeijer.com>:
> Hi,
> 
> in GC_add_roots_inner there are is a win32 codepath and a nonwin32 codepath
> for detecting if there is an overlap/adjacent rootset already present. if so it
> extends the existing rootset to fully include the newly added rootset.
> 
> GC-remove_roots is not implemented on win32.
> 
> I'm hoping someone can explain why the nonwin32 codepath is required. On a quick
> experiment, making win32 use the nonwin32 codepath, things "seem" to work fine,
> and allow me to unregister roots.
> 
> A message on this mailinglist, Ivan writes:
> 
> "In theory, it's possible to implement GC_remove_roots() for Win32.
> But, it is complicated due to overlapping/adjacent regions processing."
> 
> This statement puzzles me, as the non Win32 codepath also does
> overlapped-roots-collapsing, so it would seem to be it would suffer from the
> same problem of unregistering being unsuccessful in the case where the rootset
> has been expanded.
> 
> What is so special about win32?
> 
> Thanks,
> 
>   Lucas
> 
> _______________________________________________
> Gc mailing list
> Gc at linux.hpl.hp.com
> http://www.hpl.hp.com/hosted/linux/mail-archives/gc/
> 



More information about the Gc mailing list