summaryrefslogtreecommitdiff
path: root/pthread_stop_world.c
diff options
context:
space:
mode:
authorivmai <ivmai>2009-12-08 11:31:50 +0100
committerIvan Maidanski <ivmai@mail.ru>2011-07-26 19:06:52 +0200
commit197742f24da7b83431132559f8e306d5da5df8f0 (patch)
treebe7f00595a6c6e838382aca96b58f4c88e9211a3 /pthread_stop_world.c
parent02b76359f5f6429151a9d1c15ccf4302eb927e80 (diff)
2009-12-08 Ivan Maidanski <ivmai@mail.ru>
* darwin_stop_world.c (GC_push_all_stacks): Fix a bug (call GC_push_all_stack() instead of GC_push_all_stack_frames()). * include/private/gc_priv.h (GC_push_all_stack_frames, GC_push_all_register_frames): Rename to GC_push_all_stack_sections and GC_push_all_register_sections, respectively. * mark_rts.c (GC_push_all_stack_frames, GC_push_all_register_frames, GC_push_all_stack_part_eager_frames, GC_push_current_stack): Ditto. * pthread_stop_world.c (GC_push_all_stacks): Ditto. * win32_threads.c (GC_push_stack_for): Ditto. * misc.c (GC_call_with_gc_active): Rename "frame" local variable to "stacksect". * pthread_support.c (GC_call_with_gc_active): Ditto. * win32_threads.c (GC_call_with_gc_active): Ditto. * pthread_support.c (GC_call_with_gc_active): Update FIXME for Darwin. * win32_threads.c (GC_Thread_Rep): Update the comment for traced_stack_sect.
Diffstat (limited to 'pthread_stop_world.c')
-rw-r--r--pthread_stop_world.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pthread_stop_world.c b/pthread_stop_world.c
index cde3712..cf9b823 100644
--- a/pthread_stop_world.c
+++ b/pthread_stop_world.c
@@ -325,7 +325,7 @@ GC_INNER void GC_push_all_stacks(void)
(unsigned)(p -> id), lo, hi);
# endif
if (0 == lo) ABORT("GC_push_all_stacks: sp not set!");
- GC_push_all_stack_frames(lo, hi, p -> traced_stack_sect);
+ GC_push_all_stack_sections(lo, hi, p -> traced_stack_sect);
# ifdef STACK_GROWS_UP
total_size += lo - hi;
# else
@@ -338,8 +338,9 @@ GC_INNER void GC_push_all_stacks(void)
# endif
/* FIXME: This (if p->id==me) may add an unbounded number of */
/* entries, and hence overflow the mark stack, which is bad. */
- GC_push_all_register_frames(bs_lo, bs_hi, THREAD_EQUAL(p -> id, me),
- p -> traced_stack_sect);
+ GC_push_all_register_sections(bs_lo, bs_hi,
+ THREAD_EQUAL(p -> id, me),
+ p -> traced_stack_sect);
total_size += bs_hi - bs_lo; /* bs_lo <= bs_hi */
# endif
}