From: "H.Yamamoto" Date: 2004-08-19T17:12:00+09:00 Subject: [ruby-dev:24131] Re: ruby/tk crashes on bcc32 山本です。 >「Tcl/Tk のスクリプトも同じ挙動」というのは >このスクリプトを Tcl/Tk で動かした際にも >「Ruby/Tk の場合と同様にボタンを何度か押すと落ちる」 >ということでしょうか? すみません、書き方があいまいでした。mswin32と同様という意味で、 bcc32 => 落ちる mswin32, tcl/tk => 落ちない です。 HEAD や ruby-1.8.2 の bccwin32 でも、 require "tk" $canvas = TkCanvas.new { pack } TkButton.new { text "click" command { GC.disable 1000.times {|i| c = TkcRectangle.new($canvas, 100, 100, 200, 200); $canvas.delete(c) } GC.start } pack } Tk.mainloop とすると何度押しても落ちないので、スレッドや GC でタイミング悪く何かが起こって落ちているのでは ないかという気がします。GC.disable, GC.start を外すと一度か二度で落ちます。 ($canvas.delete は長方形がオブジェクトで、キャンバスに残ってしまうのを知らなかったので追加しました。 「mswin32だとしばらく固まったようになりますが」はこれが原因でした。 $canvas.delete の有無は落ちる・落ちないには関係しません)