2010-10-06 Ivan Maidanski <ivmai@mail.ru>
authorivmai <ivmai>
Wed, 6 Oct 2010 20:09:27 +0000 (20:09 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:55 +0000 (21:06 +0400)
commit24b29a7e89dc3b25b4d6933b7aaf49acf19c71a4
tree5c6184fca0e66fa8379c77696667275b66653f63
parent34867e9d2269c71f9753f7ce472904f9c4528a28
2010-10-06  Ivan Maidanski <ivmai@mail.ru>

* darwin_stop_world.c (FindTopOfStack): Change return type to
ptr_t (from long); make GC_INNER; add GC_ prefix.
* darwin_stop_world.c (GC_push_all_stacks): Add thread_blocked
local variable (initialized from the corresponding GC_thread
field unless GC_query_task_threads); add assertion that our
thread is not blocked; prefix FindTopOfStack with GC_ and remove
no longer needed cast to ptr_t of the result; handle thread
blocked case (and remove FIXME); use GC_push_all_stack_sections
unless GC_query_task_threads (and remove FIXME).
* pthread_support.c (GC_FindTopOfStack): Declare (if needed).
* pthread_support.c (GC_do_blocking_inner): Call
GC_save_regs_in_stack (if needed) before acquiring the lock.
* win32_threads.c (GC_do_blocking_inner): Ditto.
* pthread_support.c (GC_do_blocking_inner): Set/clear topOfStack
field of GC_thread (Darwin only).
* include/private/pthread_support.h (GC_thread): Add topOfStack
field for Darwin (unless DARWIN_DONT_PARSE_STACK).
ChangeLog
darwin_stop_world.c
include/private/pthread_support.h
pthread_support.c
win32_threads.c