Hi,

At Mon, 28 May 2007 10:01:05 +0900,
gga wrote in [ruby-core:11280]:
> > If it were reset, VALUEs on other threads won't be marked anymore.
> > And the thread mechanism of 1.8 or former works by overwriting
> > machine stack, so stack address must not change.
> > That is the good enough reason.
> > 
> 
> Okay.  But I can have a function travel the current stack, register the
> (potential) VALUE addresses found there in a global hash for example,
> and then safely change the stack address.

It's sounds quite expensive and eccentric.

You can create a T_DATA object so that the mark function sweeps
your stack.

> Hmm... isn't native threads the default for yarv?  If so, that's
> definitively not the same for 1.8.  Currently:
> 
> Thread.new { // do something with a dso }
> 
> will not crash the interpreter.  You don't get true multithreading, but
> not a crash.

Because YARV does know about threads which it created.

-- 
Nobu Nakada