Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine
http://redmine.ruby-lang.org/issues/show/2294

Author: Suraj Kurapati
Status: Open, Priority: Normal
Category: core, Target version: 1.9.2

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


----------------------------------------
http://redmine.ruby-lang.org