[#12387] reducing logical operation — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2001/03/07
[#12388] Re: reducing logical operation — EGUCHI Osamu <eguchi@...> 2001/03/07

えぐち@エスアンドイー です。

[#12389] Re: reducing logical operation — nobu.nakada@... 2001/03/07

なかだです。

[#12391] Re: reducing logical operation — EGUCHI Osamu <eguchi@...> 2001/03/07

えぐち@エスアンドイー です。

[#12404] fork in threads — keiju@... (Keiju ISHITSUKA)

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

14 messages 2001/03/09

[#12405] at_exit — keiju@... (Keiju ISHITSUKA)

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

15 messages 2001/03/09
[#12409] Re: at_exit — matz@... (Yukihiro Matsumoto) 2001/03/10

まつもと ゆきひろです

[#12411] Re: at_exit — keiju@... (石塚圭樹) 2001/03/10

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

[#12425] bignum % の結果が負数になることがある — Hisayasu Nakao <h-nakao@...>

最近、ruby-1.6.2を使い出したばかりの中尾です。

39 messages 2001/03/12
[#12427] Re: bignum % の結果が負数になることがある — WATANABE Hirofumi <eban@...> 2001/03/12

わたなべです。

[#12463] Re: bignum % の結果が負数になることがある — Takahiro Kambe <taca@...> 2001/03/13

In message <4518-Mon12Mar2001145434+0900-eban@os.rim.or.jp>

[#12464] Re: bignum % の結果が負数になることがある — matz@... (Yukihiro Matsumoto) 2001/03/13

まつもと ゆきひろです

[#12466] Re: bignum % の結果が負数になることがある — Takahiro Kambe <taca@...> 2001/03/13

In message <984469222.234203.1007.nullmailer@ev.netlab.zetabits.com>

[#12475] Re: bignum % の結果が負数になることがある — matz@... (Yukihiro Matsumoto) 2001/03/14

まつもと ゆきひろです

[#12476] Re: bignum % の結果が負数になることがある — Takahiro Kambe <taca@...> 2001/03/14

In message <984550885.417146.3670.nullmailer@ev.netlab.zetabits.com>

[#12480] Re: bignum % の結果が負数になることがある — matz@... (Yukihiro Matsumoto) 2001/03/14

まつもと ゆきひろです

[#12481] Re: bignum % の結果が負数になることがある — Takahiro Kambe <taca@...> 2001/03/14

In message <984553493.009507.3747.nullmailer@ev.netlab.zetabits.com>

[#12488] Re: bignum % の結果が負数になることがある — matz@... (Yukihiro Matsumoto) 2001/03/14

まつもと ゆきひろです

[#12493] Re: bignum % の結果が負数になることがある — Takahiro Kambe <taca@...> 2001/03/14

In message <984579430.080967.5569.nullmailer@ev.netlab.zetabits.com>

[#12578] require 'win32api' — Kazuhiro NISHIYAMA <zn@...>

require 'win32api'のエラーメッセージがわかりにくいと

21 messages 2001/03/20
[#12579] Re: require 'win32api' — nobu.nakada@... 2001/03/20

なかだです。

[#12598] Re: require 'win32api' — nobu.nakada@... 2001/03/21

なかだです。

[#12582] finalizer problem — keiju@... (Keiju ISHITSUKA)

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

20 messages 2001/03/20
[#12583] Re: finalizer problem — matz@... (Yukihiro Matsumoto) 2001/03/20

まつもと ゆきひろです

[#12585] Re: finalizer problem — keiju@... (石塚圭樹) 2001/03/20

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

[#12591] Re: finalizer problem — matz@... (Yukihiro Matsumoto) 2001/03/20

まつもと ゆきひろです

[#12619] Re: finalizer problem — keiju@... (石塚圭樹) 2001/03/22

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

[#12605] extern inline (ruby.h) ruby-1.6.3 — WATANABE Tetsuya <tetsu@...>

渡辺哲也です。

17 messages 2001/03/22
[#12606] Re: extern inline (ruby.h) ruby-1.6.3 — matz@... (Yukihiro Matsumoto) 2001/03/22

まつもと ゆきひろです

[#12607] Re: extern inline (ruby.h) ruby-1.6.3 — WATANABE Tetsuya <tetsu@...> 2001/03/22

渡辺哲也です。

[#12608] Re: extern inline (ruby.h) ruby-1.6.3 — matz@... (Yukihiro Matsumoto) 2001/03/22

まつもと ゆきひろです

[#12674] Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp>

21 messages 2001/03/25
[#12675] Re: Was: [rubyist:0454] Re: to_str — matz@... (Yukihiro Matsumoto) 2001/03/26

まつもと ゆきひろです

[#12678] Re: Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp> 2001/03/26

[#12681] Re: Was: [rubyist:0454] Re: to_str — matz@... (Yukihiro Matsumoto) 2001/03/26

まつもと ゆきひろです

[#12687] Re: Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp> 2001/03/27

[#12688] Re: Was: [rubyist:0454] Re: to_str — matz@... (Yukihiro Matsumoto) 2001/03/28

まつもと ゆきひろです

[#12710] Re: Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp> 2001/03/31

[ruby-dev:12414] Re: fork in threads

From: Masatoshi SEKI <m_seki@...>
Date: 2001-03-10 13:59:07 UTC
List: ruby-dev #12414
咳といいます。

石塚さん:
> ということで, fork_and_kill_other_threads をforkの動作にすべきだと思いま
> す. また, thread単位に生き残るかどうかの指定ができる云々って話がありまし
> たが, threadが生きていて欲しいかどうかはthread単位の問題ではない気がしま
> す(だれがforkするかによって決まる). forkn()みたいな別の関数として用意す

ふむ。
「だれがforkするかによって決まる」っていうのはまったくそんな気が
してきました。スレッドや資源の性質によって決まるんじゃなくて、
なんのためにforkするかによって決まるんですよね。


なひさん:

> > 次に, ライブラリ側がthreadを用いていてそのライブラリをを用いるユーザ側が
> > forkしたい場合ですが, ユーザにとってforkしてもthreadが生きていなくてはな
> > らないって場合はないはずです. あったとしても, ライブラリ側でforkを必要な
> > 動作をするように再定義してあげればいいだけです. 
> 
> 「Rubyのforkを↑のように定義しよう。上のようなことをする機能を、
> forkと呼ぼう」というお話だと理解しました。であれば、
> そのようなforkをした時に、ライブラリの中で(外部には隠して)
> 利用しているスレッドが死んでしまい、正しい動作をしなくなる
> (例えばDRb)のは、まっとうだと思います。
> ユーザーが責任を持つべきです。

UNIXのfork()のイメージだとそっくりそのまま残る感じがしますけど、
きっとfork()の目的はある処理(スレッド)の環境を作るためにプロセスを
生成することなんでしょうね。そうするとそのスレッドだけしかない
プロセスが用意できた方がいいものなのかもしれませんね。


> ただし、
> 
> > それにユーザ側が, forkし
> > たら必ず必要ないthreadをkillしなくちゃ行けないってのは, 使いやすさに反し
> > ます.
> 
> もともとforkという機能が使いやすくないですから、
> 上記の主張にはあまり意味がないと思います。
> forkするならthread以外にも問題はいろいろあるので、
> 相応の覚悟が要りますよね。

fork()って難しいです。

手元のCのfork()するコード眺めてたのですけど、ほとんどのものが

  1. fork()
  2. 興味のないファイル記述子を全部close()
  3. 興味のない資源(あれば)を全部開放
  4. 前処理 (dupとか??)
  5. 本処理 (そこで処理の関数を呼ぶか、exec())

でした。これにThreadのkillが入るのはそんなに違和感ないかなー。

forkしたスレッドがメインスレッドになると仮定してRubyだったら‥

  0. tmp = Thread.criticla; Thread.critical = true
     IOのflush等
  1. fork()
   子
     2. forkしたスレッドがメインスレッドになる
     3. 興味のないIOのclose   # というか興味のあるIO以外のclose
     4. 資源の開放
     5. 興味のないThreadのkill  # 興味のあるThread以外のkill
     6. 本処理
  2. Thread.critical = tmp

というのとか。

popen()的な使い方だったら全自動killも現実的だと思います。
けど、生のfork()に近いものも残ってた方がUNIX的だと思うの
ですけどどうなんでしょう。

といっても咳はほとんどRubyでfork()使わないので見当違いかも
しれませんが。


> # 過激な提案
> # 1. dRubyをrubyのcoreに組み込む。

うーむ。つまんないようなうれしいようなつまんないような‥。

In This Thread