永井@知能.九工大です.

From: matz / ruby-lang.org (Yukihiro Matsumoto)
Subject: [ruby-dev:22387] Re: Tk.callback_break causes seg-fault or hang-up
Date: Wed, 24 Dec 2003 23:26:18 +0900
Message-ID: <1072275976.351079.31157.nullmailer / picachu.netlab.jp>
> テストスクリプトと期待する動作を教えてください。なんとかでき
> るかもしれません。

メール確認が遅くなってしまったので手遅れかもしれませんが,
簡単なテストスクリプトです.
-----------------------------------------------------------
require 'tk'
b = TkButton.new(:command=>proc{p 'never print me'}).pack
b.bind('Button-1', proc{p 'clicked!'; Tk.callback_break})
Tk.mainloop
-----------------------------------------------------------
最初の 1 〜 2 回は正常に 'clicked!' を表示しますが,
繰り返しているとハングアップすると思います.
この例でうまく確認できなければ,[ruby-talk:88781] の
サンプルで試してみてください.
こちらの場合は,テキストウィジェットに aaa などと
キーボードから入力しようとすると最初の 1 〜 2 文字は
正常に入力されるものの,その後の入力時には seg-fault を
起こします.
死ぬのは Tcl_DoOneEvent() の中です.
Ruby の native thread 以外から ruby の内部ルーチンが
呼び出されていないことは確認しています.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp