[#25807] Pograming Ruby — Yoshimasa Kusano <dingo@...>

18 messages 2000/11/05

[#25856] new host at ruby-lang.org (or rubyist.org) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

12 messages 2000/11/09

[#25874] 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp

はるおと申します。

88 messages 2000/11/10
[#25875] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/10

まつもと ゆきひろです

[#25876] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/10

わたなべです.

[#25879] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/10

はるおです。

[#25880] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/10

newです.

[#25907] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25909] Re: 子プロセスから標準出力と終了ステータスを得たい — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/13

なかだです。

[#25910] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25912] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/13

newです.

[#25914] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25916] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/13

newです.

[#25917] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25923] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25926] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/13

まつもと ゆきひろです

[#25929] Re: 子プロセスから標準出力と終了ステータスを得たい — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/11/13

石橋秀仁です。

[#25938] Re: 子プロセスから標準出力と終了ステータスを得たい — Takahiro Kambe <taca@...> 2000/11/14

標準の細かなことは知りませんが、

[#25943] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25951] Re: 子プロセスから標準出力と終了ステータスを得たい — Shugo Maeda <shugo@...> 2000/11/14

前田です。

[#25954] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25956] Re: 子プロセスから標準出力と終了ステータスを得たい — Shugo Maeda <shugo@...> 2000/11/14

前田です。

[#25962] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25976] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/14

まつもと ゆきひろです

[#25998] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26009] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26013] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26015] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26016] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26017] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26018] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26023] Re: 子プロセスから標準出力と終了ステータスを得たい — Takahiro Kambe <taca@...> 2000/11/16

In message <20001116164843.7086.YHARUO@mail7.dddd.ne.jp>

[#25934] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/14

わたなべです.

[#25913] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25919] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25924] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#26012] reference manual to WiKi — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

42 messages 2000/11/16
[#26051] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/11/16

新井です。

[#26090] Re: reference manual to WiKi — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/11/17

なひです。

[#26105] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/11/18

新井です。

[#26279] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/12/03

新井です。

[#26069] Ruby デスクトップリファレンス — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

17 messages 2000/11/17

[#26156] fork problem? — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、fork した子プロセス内で例外が発生すると、外側

82 messages 2000/11/25
[#26160] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/25

まつもと ゆきひろです

[#26163] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/25

In article <E13zgAK-0005kt-00@ev.netlab.zetabits.co.jp>,

[#26165] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/25

まつもと ゆきひろです

[#26173] Re: fork problem? — nobu.nakada@... 2000/11/25

なかだです。

[#26176] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/26

In article <200011252247.HAA09258@sharui.nakada.kanuma.tochigi.jp>,

[#26179] Re: fork problem? — nobu.nakada@... 2000/11/26

なかだです。

[#26182] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/26

まつもと ゆきひろです

[#26188] Re: fork problem? — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/27

なかだです。

[#26190] Re: fork problem? — SHUDO Kazuyuki <shudoh@...> 2000/11/27

なかださん wrote:

[#26191] Re: fork problem? — Takahiro Kambe <taca@...> 2000/11/27

In message <200011270410.NAA09803@cafe.muraoka.info.waseda.ac.jp>

[#26192] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/27

In article <200011270426.NAA08013@edge.sky.yamashina.kyoto.jp>,

[#26196] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/27

まつもと ゆきひろです

[#26207] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/27

[#26209] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26212] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/28

[#26213] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26218] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/28

[#26223] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26256] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/02

[#26257] Re: fork problem? — Masato KIYAMA <masato@...> 2000/12/02

木山です.

[#26266] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/02

余談ですが、

[#26270] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/02

[#26318] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/04

In message <3A2926E4316.F02D.BXQ04723@nifty.ne.jp>

[#26460] Re: fork problem? — Kazuyuki Shudo <shudoh@...> 2000/12/08

首藤です。

[#26465] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/09

[#26467] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/12/09

まつもと ゆきひろです

[#26488] Re: fork problem? — WATANABE Tetsuya <tetsu@...> 2000/12/11

渡辺哲也です。

[#26492] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/11

[#26850] Re: fork problem? — Kazuyuki Shudo <shudoh@...> 2000/12/25

首藤です。

[#26258] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/02

In message <3A287422384.A2B9.BXQ04723@nifty.ne.jp>

[ruby-list:26168] Re: fork problem?

From: Tanaka Akira <akr@...17n.org>
Date: 2000-11-25 18:42:30 UTC
List: ruby-list #26168
In article <E13zipu-00077q-00@ev.netlab.zetabits.co.jp>,
  matz@zetabits.com (Yukihiro Matsumoto) writes:

> 状況はわかりました。もし可能であれば、作りかけのRuby版とエラー
> を発生させる起動法に関する情報があるとこちらでいろいろ実験で
> きるので助かります。

わかりました。いろいろデバッグ用の出力を行なうようになっていますが、そ
のままつけておきます。

まず、サーバを動かします。
(ちなみに /cvs/root ってのは動作にはまったく関係ありません。)

% ./cvsconnect /cvs/root sh
"#<Thread:0x8103024> unlink_maybe: /tmp/cvsconnect-11933"
Exception `Errno::ENOENT' at ./cvsconnect:46
$

次に、他の端末から、クライアントを動かします。
(hose は netpipes に含まれています。(stream な)unix domain socket を通
して対話できるツールならなんでも構いません... 寡聞にして netpipes 以外
のものは知りませんが。)

% hose localhost /tmp/cvsconnect-* --slave --unix

クライアント一つなら問題なく動きます。cat -nu がサーバ側で動くようになっ
ているので、

% hose localhost /tmp/cvsconnect-* --slave --unix
a
     1  a
b
     2  b

というように受け答えするはずです。
(接続を終了してから再度接続しても、行番号はリセットされません。これは
意図された動作です。というか、そのようにサーバとの接続を保持するのがこ
のプログラムの役目なわけです。)

ここで、さらにもうひとつ他の端末で並行してクライアントを起動すると、問
題が発生します。意図された動作は cat -nu をもうひとつ起動して、そちら
と対話する、というものですが、接続は可能なものの反応がないという状況に
なります。そして、新しく起動したクライアントだけでなく、もともと接続し
ていたクライアントでも反応がなくなってしまいます。

さて、何が起きているのやら...


ちなみに popen で実装するとだいたいうまく動きます。
(使用する file descriptor が 64 を越えるまでは。たぶん。)


> forkしてからcloseすれば良いのかしら?

むろんそうしています。

> dupしているのはstdioのコードをソケットに対しても適用可能にす
> るためです。stdioがseekなしで読み書きできればこんなことはし
> なくても済むのですが。

うぅむ。rw な FILE は read/write の切り替わり時に seek する、というの
が問題なわけでしょうか? そういう問題があることは不覚にも気がついていま
せんでしたが、ひとつの fd に対して 2回 fdopen するするわけにはいかない
んでしょうか? 
(片方でしか close できないから memory leak してしまうか?)

> # その度に浮上する stdio を捨てる案。でも、拡張ライブラリや、
> # その先のライブラリが使っている stdio との不整合が...。

ぜひぜひ。

> IO#fcntlやIO#ioctlがfとf2の両方にfcntl(2), ioctl(2)を呼べば
> 済む問題だといいんですが、どうなんでしょう?

それでも済みます。たぶん。

> |fcntl(など)を f2 に発行できるようにするか、
> |fork した当の thread 以外の thread をすべて有無を言わさず殺すような fork
> |(Thread.fork_and_kill_other_threads とか?)があるといいんじゃないかなぁ、
> |と思っています。
> 
> forkとthreadを混ぜるのはかなり問題の元です。

過去のメールを search してそのような雰囲気を感じとってはいたのですが、
thread が有効だったので、つい。

> いっそ、fork_and_kill_other_threadsをforkの標準仕様にしちゃ
> いましょうか。

賛成です。
が、(ruby に限らず)余計なお節介に悩まされることが多い経験上、本物の
fork も他の名前(Process.fork とか?)で残しておくといいのではないかとい
う気もかすかにしないでもありません。具体的にどの場合に困る、というのは
今は思いつきませんが...

# continuation って thread なんだっけ?
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「くっだらないコト聞いちゃったねー$(C⊇ ごっめーん$(C⊇」
  (魔法使い養成専門 マジックスター学院 2, 南澤ミヅキ)

Attachments (2)

cvsconnect (5.11 KB, application/x-sh)
cvsconnect-popen (2.08 KB, application/x-sh)

In This Thread