From d33ccac173969a3cb96b72d835a965bfa6decc3e Mon Sep 17 00:00:00 2001 From: kosaki Date: Thu, 11 Aug 2011 12:28:41 +0000 Subject: * backport r32815 from trunk. * gc.c (init_heap): allocate sigaltstack after heaps are allocated. [ruby-dev:44315] [Bug #5139] * vm.c (thread_free): use free because objspace is not ready. * vm.c (th_init): use malloc because objspace is not ready. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 8c33323e9b..fb74b0623a 100644 --- a/gc.c +++ b/gc.c @@ -1085,6 +1085,14 @@ static void init_heap(rb_objspace_t *objspace) { add_heap_slots(objspace, HEAP_MIN_SLOTS / HEAP_OBJ_LIMIT); +#ifdef USE_SIGALTSTACK + { + /* altstack of another threads are allocated in another place */ + rb_thread_t *th = GET_THREAD(); + free(th->altstack); /* free previously allocated area */ + th->altstack = xmalloc(ALT_STACK_SIZE); + } +#endif heaps_inc = 0; objspace->profile.invoke_time = getrusage_time(); -- cgit v1.2.3