[Gc] Patches resubmission 5

Ivan Maidanski ivmai at mail.ru
Fri May 29 07:51:13 PDT 2009


This cumulative patch (resembling diff27, diff30, diff43, diff44, diff66, diff76, diff79, diff83 partly) deals with misc fixes in win32_threads.c only. It doesn't depend on my previous cumulative patches.

1. IA64 is still not supported on Win32.
2. My explanations for GC_wait_marker() changes is here:

ChangeLog entries:
        * win32_threads.c (MAX_THREADS): Define as 1 if GC_win32_dll_threads
        is defined as FALSE (otherwise the size of dll_thread_table is near
        200 KiB for 32-bit).
        * win32_threads.c (GC_use_DllMain): Optimize for THREAD_LOCAL_ALLOC.
        * win32_threads.c (GC_Thread_Rep): Add backing_store_end and
        backing_store_ptr fields for IA64 support.
        * win32_threads.c (GC_register_my_thread_inner): Set
        backing_store_end field to reg_base value for IA64 (same as in
        * win32_threads.c (SET_PTHREAD_MAP_CACHE): Put parentheses in the
        "right" places, remove ';'.
        * win32_threads.c (GC_fault_handler_lock): Declare only
        if MPROTECT_VDB (and not WinCE).
        * win32_threads.c (GC_suspend): Acquire and release
        GC_fault_handler_lock only if MPROTECT_VDB (and not WinCE).
        * win32_threads.c (GC_suspend): Define as STATIC.
        * win32_threads.c (GC_push_stack_for): Fix WARN() format specifier
        (should be word-complient, "%p" is used w/o "0x"), don't cast sp.
        * win32_threads.c (GC_push_all_stacks): Convert a group of printf()
        calls into a single one (for output atomicity).
        * win32_threads.c (GC_get_next_stack): Unprotect thread descriptor
        before altering its last_stack_min ("thread" variable is added).
        * win32_threads.c (GC_get_next_stack): Remove unnecessary checks for
        "s" is non-NULL. 
        * win32_threads.c (GC_get_next_stack): Don't call GC_may_be_in_stack
        if WinCE.
        * win32_threads.c (GC_get_next_stack): Pass current_min value to
        GC_get_stack_min as-is (without -1).
        * win32_threads.c (GC_wait_marker): Remove FIXME and use "release"
        version of AO_fetch_and_sub1().
        * win32_threads.c (GC_win32_start_inner, GC_win32_start): convert int
        to pointer (and vice verse) thru word type to suppress warnings.

PS. Not related to this patch. I found that diff41a and diff41b [Nov 11] don't depend on my other patches and could be easily applied but read the accompanying info:
and https://permalink.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2485

-------------- next part --------------
A non-text attachment was scrubbed...
Name: =?koi8-r?Q?diff93=5Fcvs?=
Type: application/octet-stream
Size: 7790 bytes
Desc: not available
Url : https://napali.hpl.hp.com/pipermail/gc/attachments/20090529/6e0ecde4/koi8-rQdiff935Fcvs.obj

More information about the Gc mailing list