[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

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

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25659] Re: some problems on ext/tk/sample/**/*.rb

From: Hidetoshi NAGAI <nagai@...>
Date: 2005-02-08 08:51:06 UTC
List: ruby-dev #25659
永井@知能.九工大です.

From: H.Yamamoto <ocean@m2.ccsnet.ne.jp>
Subject: [ruby-dev:25656] Re: some problems on ext/tk/sample/**/*.rb
Date: Tue, 8 Feb 2005 15:37:00 +0900
Message-ID: <20050208153646.6DDB8540.ocean@m2.ccsnet.ne.jp>
> を ext/tk/tkutil/extconf.rb として作成し、
> 試した限りでは落ちなくなったようです。ただ、multi-ip の
> サンプルがうまく動いていないようでした。

multi-tk は色々とややこしいことをしているので
まだ問題の見落としがあるのでしょうねぇ...
もう一度調べ直します.

> //////////////////////////////////////////////////////////////////////////
> 
> require 'tk'
> 
> menu_spec = [
>   [['File', 0],
>   ['exit(Crash)', proc{exit}, 0]]
> ]
> 
> TkMenubar.new(nil, menu_spec).pack
> Tk.mainloop
> 
> でメニューから終了すると、画面中央に一瞬何かのウィンドウが表示される
> ことがあります。すぐ閉じるので、なんて書いてあるのかは読めません。
> 
> #if 0 /* REMOVE : fail to rescue SystemExit */
>             /* Tcl_Eval(interp, "destroy ."); */
>             if (Tk_GetNumMainWindows() > 0) {
>                 Tk_Window main_win = Tk_MainWindow(interp);
>                 if (main_win != (Tk_Window)NULL) {
>                     Tk_DestroyWindow(main_win);
>                 }
>             }
> #endif
> 
> を復活させると、表示されなくなりました。

あぁ,そうかぁ....
Ruby 側の終了処理と Tk 側での終了処理とのタイミングの問題ですね.
問題の個所を復活させると,SystemExit が発生するやいなや
mainwindow を消去するので余計なメッセージを出さないわけですが,
SystemExit を rescue できなくなってしまいます.

# rescue しようとしても,捕捉した時点では既に mainwindow が
# 失われているので継続は無意味になる.

この点も SEGV 問題に関わっていそうですね.対策を考えます.


> ですが、落ちる原因がコマンド置換になかったので、
> 
> Tcl_Eval(ptr->ip, "foreach id [after info] {after cancel $id}");
> 
> に戻してもいいんじゃないかと思います。(こういうリファクタリングは大好きです)

確かにそうですね.戻すことにします.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread