From: Roman Shterenzon Date: 2009-10-28T19:04:48+09:00 Subject: [ruby-core:26387] [Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine Issue #2294 has been updated by Roman Shterenzon. I'm embedding a Ruby 1.9.1 in my app, and it would die with segmentation fault, and I was suspicious about the stack, as it's multithreaded. I applied your patch and it looks fine so far. I'm using the following code (and assume that stack grows upward): static void pthread_get_stack(void **stack_begin, void **stack_end) { size_t stack_size; #if defined(HAVE_STACKADDR_NP) && defined(HAVE_GET_STACKSIZE_NP) /* MacOS X */ pthread_t t_id = pthread_self(); *stack_begin = pthread_get_stackaddr_np(t_id); stack_size = pthread_get_stacksize_np(t_id); #else /* Linux */ pthread_attr_t attr; pthread_getattr_np(pthread_self(), &attr); pthread_attr_getstack(&attr, stack_begin, &stack_size); #endif *stack_end = *stack_begin + stack_size; } ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2294 ---------------------------------------- http://redmine.ruby-lang.org