From: "Haase, Konstantin" Date: 2012-02-01T00:12:31+09:00 Subject: [ruby-core:42286] Re: Why Ruby 1.9 GUI hangs if i do any intensive computation in separate Ruby thread? the GIL is *not* supposed to lift if some threads enters native code... On Jan 31, 2012, at 08:05 , Grigory Petrov wrote: > Hello > > Ruby 1.9 suppose to have native threads, and GIL is supposed to lift > if some threads enters native code (like GUI toolkit main loop or C > implementation of some Ruby lib). But if i start following simple code > sample that displays GUI in main thread and do some basic math in > separate thread - the GUI will hang out badly and dragging window will > redraw ~ every 10 seconds or so :(. I have checked with different GUI > toolkit, Qt (qtbindings gem) - it behaves exactly same. Tested with > Ruby 1.9.3-p0 on Windows 7 and OSX 10.7 > > require 'tk' > require 'thread' > require 'rexml/document' > Thread.new { loop { a = 1 } } > TkRoot.new.mainloop() > > Same code in Python works fine without any GUI hangs: > > from Tkinter import * > from threading import * > class WorkThread( Thread ) : > def run( self ) : > while True : > a = 1 > WorkThread().start() > Tk().mainloop() > > What i'm doing wrong? >