Issue #2505 has been updated by Christian Höltje.


> > Some examples:
> >  priority doesn't do the same thing on Solaris than Linux.
> >  loop{} will lock the process up in Solaris, but not Linux.
> 
> They may true.  If a difference cause a practical problem, please report it.

http://redmine.ruby-lang.org/issues/show/1169 - priority
http://redmine.ruby-lang.org/issues/show/2359 - loop{}

These are just two examples.  Threading across platforms is very different.  Heck, some platforms have multiple versions of threads.

> These two are wrong.
> Ruby 1.9 uses native threads but still use GIL just because of the problem you pointing out.

I know that the GIL is still being used, but this still doesn't protect data-structures that aren't ready for native threads.  A C extension can still be thread-unsafe and fail in hard to understand and debug ways.

Having a new class that uses the native threads without the GIL everyplace would have been a better solution than potentially breaking.

Or using something that is completely data safe, like using erlang style message passing with processes, would be even better and more platform independent; C extensions wouldn't have to worry about being thread safe and locks wouldn't be needed for passing information around.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/2505

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