2

In a 2000 interview (that is, pre-YARV), Matz said

Matz: I'd like to make it faster and more stable. I'm planning a full rewrite of the interpreter for Ruby 2.0, code-named "Rite". It will be smaller, easier to embed, thread-safe, and faster. It will use a bytecode engine. It will probably take me years to implement, since I'm pretty busy just maintaining the current version.

What was meant by "thread-safe" in this context? An interpreter that allowed you to use green threads? An interpreter that allowed you to use native threads? An interpreter that didn't have a global interpreter lock (GVL in YARV Ruby terminology)?

Andrew Grimm
  • 78,473
  • 57
  • 200
  • 338
  • To *me* it means the lack of a "GIL" requirement. (But this supposes use of native threads, unless talking about just making core function re-entrant?) –  Jun 02 '12 at 08:33
  • Or since he's talking about embedding, perhaps he's talking about being able to use a ruby interpreter embedded in a regular c/c++ app from multiple threads? – Frederick Cheung Jun 14 '12 at 15:24

1 Answers1

1

At the moment ruby's threading is less than ideal. Ruby can use threading and the threading works fine, but because of its current threading mechanism, the long-and-short of it is that one interpreter can only use one CPU core at a time; there are also other potential issues.

If you want all the gory details, This article covers it pretty well.

Michael Slade
  • 13,802
  • 2
  • 39
  • 44