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