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]