Hi Alex,
On Apr 17, 2009, at 8:27 PM, Alex Vollmer wrote:
Hi folks,
Could someone shed a little light on how threads work in MacRuby?
For example, if I do this:
Thread.new do
10.times do
puts "Hi"
sleep 2
end
end
Does this run as a NSThread instance? Also does the MacRuby runtime
have the Global Interpreter Lock or are MacRuby threads basically
NSThreads?
As of MacRuby 0.4 and trunk, the following will create a native
(pthread) thread that will run through YARV. It will acquire the YARV
global lock during Ruby dispatch time (but not Objective-C dispatch
time) because of thread-safety issues.
The next release of MacRuby will have a different implementation and
there won't be any global lock anymore, so threads will fully run in
parallel.
An NSThread is generally the same thing as a pthread, I am not aware
of any big difference (except that it registers itself to the
collector, but we do this too). The next release of MacRuby might
perhaps expose an NSThread object for convenience.
Laurent
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel