[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:952

From: "U.Nakamura" <usa garbagecollect.jp>
Date: Tue, 21 Feb 2006 20:07:38 +0900
Subject: [yarv-dev:952] Re: close> Re: block on exiting with living thread

こんにちは、なかむら(う)です。

In message "[yarv-dev:951] Re: close> Re: block on exiting with living thread"
    on Feb.21,2006 19:56:08, <ko1 atdot.net> wrote:
|  現在、Thread#kill の処理は win32/win32.c のグローバル変数
| interrupted_event *ではなく*、各スレッド(各ネイティブスレッド)が持って
| いる yarv_thread_t#native_thread_data.interrupt_event に対して SetEvent
| を発生させる、という実装にしています。たとえば Ruby の sleep() はそれを
| 利用しているので、sleep 中でも kill で無理やりとめることは可能になってい
| ます。

想定どおりです。


|  なので、たとえば read (というか select 相当)を、スレッドごとのイベン
| トハンドルと混ぜて WaitForMultipleEvent() すればいいんだろーなーと思って
| 放置しています。その辺、どうでしょう。考えが甘い?

非同期IO使うのがいいんじゃないかな。
同期IOはいずれにせよ中断できないので。


| (でも、シグナルでは起きてくれないのはどうしたもんだか)

シグナルってなに? それっておいしい?
... じゃなくて、APIとしてのシグナルはないんだから、自力で作り
こむという解もありえます。


それでは。
-- 
U.Nakamura <usa garbagecollect.jp>



-- 
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       890 2006-02-14 19:22 [usa garbagecollect.j] open> block on exiting with living thread
       947 2006-02-21 19:37 ┗[ko1 atdot.net       ]                                       
       949 2006-02-21 19:46  ┗[usa garbagecollect.j] close> Re: block on exiting with living thread
       951 2006-02-21 19:56   ┗[ko1 atdot.net       ]                                   
->     952 2006-02-21 20:07    ┗[usa garbagecollect.j]