Hi,

At Mon, 7 Jan 2008 23:54:17 +0900,
Paul Brannan wrote in [ruby-core:14823]:
> On Mon, Jan 07, 2008 at 03:01:45AM +0900, Brent Roman wrote:
> > > I've tried getting rid of the stack copying, but it's definitely
> > > nontrivial.  The stack copying causes problems in our C++ extensions,
> > > so our rule of thumb is to not use threads at all when those
> > > extensions are being used (there is a safe way to make it work, but
> > > it's easier just to use an event loop).
> > 
> > Have you been able to isolate what operations in your C++ extensions
> > break when threads are used?  I could see were signal handlers and C++
> > exceptions could be troublesome...
> 
> It has to do with keeping pointers/references on the heap to objects on
> the stack.  When Ruby switches threads, it copies the stack, overwriting
> those objects.

And those pointers are referred asynchronously?  Such objects
have to be on heap in 1.8 implementation.

-- 
Nobu Nakada