[#2810] [BUG] IO#eof? when Thread using — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

31 messages 1998/06/08
[#2826] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2827] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2828] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2829] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2831] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2841] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2842] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2843] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2845] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2846] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2847] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2848] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2849] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2854] experimental release 1.1b9_25 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/06/11
[#2870] Re: experimental release 1.1b9_25 — Takahiro Maebashi <maebashi@...> 1998/06/15

前橋です。

[#2911] experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1998/06/18
[#2912] Re: experimental release 1.1b9_26 — WATANABE Hirofumi <watanabe@...> 1998/06/18

わたなべです.

[#2913] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2916] Re: experimental release 1.1b9_26 — Takahiro Maebashi <maebashi@...> 1998/06/18

前橋です。

[#2917] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2940] experimental release 1.1b9_27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 1998/06/19

[#2965] feature freeze for 1.1c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/06/22

[#3056] experimental release 1.1b9_28 — matz@... (Yukihiro Matsumoto)

subject says all.

28 messages 1998/06/26
[#3104] Re: experimental release 1.1b9_28 — Takahiro Maebashi <maebashi@...> 1998/06/30

前橋です。

[#3086] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro)

ごとけんです

19 messages 1998/06/29
[#3120] Re: Enumerable#reverse ([ruby-list:8579]) — keiju@... (Keiju ISHITSUKA) 1998/06/30

けいじゅ@日本ラショナルソフトウェアです.

[#3130] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro) 1998/06/30

ごとけんです

[#3146] [REQ] trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 1998/06/30
[#3190] Re: [REQ] trace_func — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#3807] Re: [REQ] trace_func — keiju@... (石塚圭樹 ) 1998/12/14

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:2838] Re: [BUG] IO#eof? when Thread using

From: matz@... (Yukihiro Matsumoto)
Date: 1998-06-10 07:16:38 UTC
List: ruby-dev #2838
まつもと ゆきひろです

In message "[ruby-dev:2837] Re: [BUG] IO#eof? when Thread using"
    on 98/06/10, Takashi Nakai <nakai@m1.sys.to.casio.co.jp> writes:

|こんにちは、中井です。
|
|#いつも関心するのですが、返答メールがすばやいですね。
|#(答えをあらかじめ用意しているとしか思えない、実は
|#  ruby で書いた eriza が対応していたりして...)

違います.私は未来が見えるんです.
# 大嘘.本当だったら良かったんだがなあ.^^;;;

|ユーザーレベルスレッドについて勘違いしていたのかもしれないのです
|がOSコール自体がブロックしてしまった場合はどうしようもないので
|はないのですか?

rubyではブロックしそうなシステムコールの前にブロックするかど
うかのチェックをいれてます.で,ブロックしないことが保証され
てる時だけシステムコールを呼んでます.時々チェックを忘れてて
思わずブロックしちゃうこともありますが([ruby-dev:2810]みたい
にね).

|最近[ruby-list]のほうで話題になっていた Squeak のVMの(ユーザー
|レベル?)のマルチスレッドの実現方法はバイトコードを1つ実行する
|度にスレッド切り替えのチェックをしていたと記憶しています。

Rubyの場合にはsetitimer(2)によるタイマー割込みが使える場合に
はそれを使って割込みかけてます(0.1秒単位).で,割込みハンド
ラでフラグを立てて安全なところで実際のコンテキスト切替えを行っ
ています.setitimer(2)が使えない場合は,インタプリタのループ
を回る度にカウンタを増やしていき,ある一定の値になった時点で
コンテキスト切替えを行ってます.

このような消極的な方法でコンテキストを切替えていますから,
rubyスクリプトのレベルではプリエンプティブですが,Cのレベル
では簡単にブロックできちゃいます.

|(それなので Socket 関数などの時間のかかる(ブロックの可能性のあ
|  る)処理の実現はOSレベルのスレッドも利用していたと思います)

なんか,複雑なことしてますね.Squeakのソースも読んでみるのも
面白いかも知れませんね.もっとも,OSレベルのスレッドはどこに
でもあるというわけにはいかないという問題があるので,依存する
わけにはいかないんですよね.たとえばDOSとか.

                                まつもと ゆきひろ /:|)

In This Thread