From: Kouhei S. <ko...@co...> - 2014-10-26 03:17:41
|
須藤です。 In <CAN...@ma...> "[ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 03:12:15 +0900, 初音とし <tos...@gm...> wrote: > 2.2.0 では期待通り動作して、2.2.2では「...」という初期表示のままでカウントが開始されず、CPU使用率がずっと100%になってしまう、というコードです。 > > https://gist.github.com/toshia/05d5ee302f49677e9d34 おぉ!再現スクリプト!ありがとうございます! たしかに手元でも再現しました。もう少し小さくして↓でも再現す ることを確認しました。 require 'gtk2' window = Gtk::Window.new window.show_all Thread.new do sleep end Gtk.main で、git bisectしてみたのですが、 https://github.com/ruby-gnome2/ruby-gnome2/commit/c92a046cfe266cedbd59a40b31cfc9ea6e8ab300 が原因でした。 このコミットはRuby 2.2対応をしていて、Ruby 2.2からはスレッド まわりのAPIが変わってごにょごにょみたいな感じなのをいい感じ にしようとしたやつなんですが、使うAPIを間違えていました。 > というところまでは分かったのですが、最初に書いたとおり私では手に追えないので、まずは困っていることの共有と、そもそもこれはバグなのか、というところを質問させていただきたいと思った次第です。 バグだったのでmasterで直しておきました。 Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの で、バグフィックス版をリリースします。少々お待ちください。 |