Forum: Ruby-core [PATCH] ruby_bind_stack() to embed Ruby in coroutine

C4e88907313843cf07f6d85ba8162120?d=identicon&s=25 "kkaempf (Klaus Kämpf)" <> (Guest)
on 2013-01-09 10:27
(Received via mailing list)
Issue #2294 has been updated by kkaempf (Klaus Kämpf).

I can reliably reproduce the bug in my embedded Ruby project
( where Ruby (ruby-1.9.3-p194;
same for git master) segfaults in mark_locations_array() accessing a
memory location *within* ruby_stack_lower_bound and

I can also verify that applying the ruby_bind_stack patch fixes the
Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine

Author: sunaku (Suraj Kurapati)
Status: Assigned
Priority: High
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0


 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 ./ output.log` on my

 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.


 See also:
This topic is locked and can not be replied to.