logo       

[ruby-list:42987] Ruby/Tk+callcc: msg#00048

lang.ruby.japanese

Subject: [ruby-list:42987] Ruby/Tk+callcc

はじめまして、服部@ISPと申します。


早速の質問で恐縮なのですが、Ruby/Tkとcallccを使ってとあるプログラムを
作成しているのですが、実行時エラーに悩んでいます。

具体的には以下のような、一見なんでもなさそうなプログラムを実行すると、
'continuation called across trap'というエラーがでます。

#### test.rb
require 'tk'

Thread.new { Tk.mainloop }

count = 0
while true
count = count + 1
callcc {|k|
p count
k.call
}
end
__END__

実行例:

% ruby test.rb
1
2
....
58
test.rb:10:in `call': continuation called across trap (RuntimeError)
from test.rb:10
from test.rb:8
---

ちなみに、ループが何回まわるかは、実行するたびに変わります。
また、rubyのバージョンは1.8.4で、上記現象はWindowsでも、
Linuxでも発生します。

上のコードでは、特にtrapをまたいだ継続呼び出しをしているとも
思えないので、ちょっと不可解です。
Ruby/Tkを使うときはcallccの使用はあきらめた方が良いので
しょうか。。。

最近、Rubyを始めたばかりなもので、
もし頓珍漢なことをしていたらごめんなさい。

以上、よろしくお願いします。
---
(株)システム計画研究所 技術本部 第5グループ
服部 健太 (E-mail:hattori-KHJI0Q8f9bZ4Eiagz67IpQ@xxxxxxxxxxxxxxxx)





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise