From: Hidetoshi Nagai Date: 2011-06-01T06:53:59+09:00 Subject: [ruby-dev:43606] [Ruby 1.9 - Bug #4808][Open] thread_wait_for() eats 100% of CPU power Issue #4808 has been reported by Hidetoshi Nagai. ---------------------------------------- Bug #4808: thread_wait_for() eats 100% of CPU power http://redmine.ruby-lang.org/issues/4808 Author: Hidetoshi Nagai Status: Open Priority: High Assignee: Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3dev (2011-06-01 trunk 31874) [x86_64-linux] いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません), thread_wait_for() が CPU パワーを大量に消費するようになっています. # これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます. このままリリースになってしまうとかなりまずいと思いますので, 優先度 High で急ぎ報告だけあげておきます. 以下はテスト用のコードです. make 後に ruby -r ./th_wait_for.so -e '' でお試しください. --------------------------------------------- #include "ruby.h" void Init_th_wait_for() { struct timeval t; t.tv_sec = 0; t.tv_usec = 10000; /* 10ms */ while(1) { fprintf(stderr, "*");fflush(stderr); rb_thread_wait_for(t); } } ------------------------------------------------------------ ------------------------------------------------ require 'mkmf' create_makefile('th_wait_for'); ------------------------------------------------------------ -- 永井 秀利 (nagai@ai.kyutech.ac.jp) 九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教 -- http://redmine.ruby-lang.org