From: Steve Hart <steve@...> Date: 2011-12-08T10:25:35+09:00 Subject: [ruby-core:41537] [ruby-trunk - Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine Issue #2294 has been updated by Steve Hart. Hi While looking for a solution to an issue we have with embedding ruby into a pthread I found this thread We have been running ruby embedded into a pthread for about 10 years now and and have upgraded periodically. We recently moved from 1.8.7 to 1.9.3 and now experience a segv immediately rb_gc is called in mark_locations_array. The symptoms resemble those described above so we applied Suraj's patch and it solves the issue. We only have one ruby instance running and do not use ruby threads within the ruby code. Could I respectfully ask what the status of this patch is, or what plans, if any, there are to solve this problem? Ruby has proven to be extremely powerful within our applications and we are keen to maintain currency and would prefer, for obvious reasons, not to have to patch the code. Also - what changed between 1.8.7 and 1.9.3 to cause this issue to appear? Thanks for your consideration and for a truly great language. Steve ---------------------------------------- Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine http://redmine.ruby-lang.org/issues/2294 Author: Suraj Kurapati Status: Assigned Priority: Normal Assignee: Yukihiro Matsumoto Category: core Target version: 2.0.0 =begin Hi, I am attaching a "ruby_bind_stack.patch" patch file that adds a ruby_bind_stack() function to the Ruby C API. This function allows me to inform the GC about the stack boundaries of the coroutine inside which Ruby is embedded: void ruby_bind_stack(void *lower, void *upper); I am also attaching tarballs containing code examples that embed Ruby inside two different coroutine environments: UNIX System V contexts[1] and libpcl[2] coroutines. Each tarball has an "output.log" file which contains the result of running `script -c ./run.sh output.log` on my machine: Linux yantram 2.6.31-ARCH #1 SMP PREEMPT Tue Oct 13 13:36:23 CEST 2009 i686 Intel(R) Pentium(R) D CPU 3.00GHz GenuineIntel GNU/Linux The last section in "output.log" corresponds to Ruby @ SVN trunk that is patched with the "ruby_bind_stack.patch" patch file that is attached to this issue. Thanks for your consideration. [1]: http://www.gnu.org/s/libc/manual/html_node/System-V-contexts.html [2]: http://www.xmailserver.org/libpcl.html See also: * http://redmine.ruby-lang.org/issues/show/2258 * http://redmine.ruby-lang.org/issues/show/2126 =end -- http://redmine.ruby-lang.org