1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* gc.c (init_heap): call init_mark_stack before to allocate

altstack. This change avoid the stack overflow at the signal
  handler on 32bit, but I don't understand reason... [Feature #7095]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nari 2012-10-04 14:48:02 +00:00
parent 08c8605de9
commit ec62e30196
2 changed files with 8 additions and 1 deletions

View file

@ -1,3 +1,9 @@
Thu Oct 4 23:40:04 2012 Narihiro Nakamura <authornari@gmail.com>
* gc.c (init_heap): call init_mark_stack before to allocate
altstack. This change avoid the stack overflow at the signal
handler on 32bit, but I don't understand reason... [Feature #7095]
Thu Oct 4 22:39:27 2012 Koichi Sasada <ko1@atdot.net> Thu Oct 4 22:39:27 2012 Koichi Sasada <ko1@atdot.net>
* insns.def (getlocal, setlocal): remove old getlocal/setlocal * insns.def (getlocal, setlocal): remove old getlocal/setlocal

3
gc.c
View file

@ -587,6 +587,8 @@ static void
init_heap(rb_objspace_t *objspace) init_heap(rb_objspace_t *objspace)
{ {
add_heap_slots(objspace, HEAP_MIN_SLOTS / HEAP_OBJ_LIMIT); add_heap_slots(objspace, HEAP_MIN_SLOTS / HEAP_OBJ_LIMIT);
init_mark_stack(&objspace->mark_stack);
#ifdef USE_SIGALTSTACK #ifdef USE_SIGALTSTACK
{ {
/* altstack of another threads are allocated in another place */ /* altstack of another threads are allocated in another place */
@ -599,7 +601,6 @@ init_heap(rb_objspace_t *objspace)
objspace->profile.invoke_time = getrusage_time(); objspace->profile.invoke_time = getrusage_time();
finalizer_table = st_init_numtable(); finalizer_table = st_init_numtable();
init_mark_stack(&objspace->mark_stack);
} }
static void static void