[#38121] regex performace tuning and ABI compatibility — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

13 messages 2009/03/03

[#38191] big time — Tanaka Akira <akr@...>

思い立って、time_t を越える範囲を Time で扱うことに挑戦して

31 messages 2009/03/27
[#38194] Re: big time — Tadayoshi Funaba <tadf@...> 2009/03/28

> 思い立って、time_t を越える範囲を Time で扱うことに挑戦して

[#38196] Re: big time — Tanaka Akira <akr@...> 2009/03/28

In article <20090328.134401.209982445.tadf@dotrb.org>,

[#38202] Re: big time — Urabe Shyouhei <shyouhei@...> 2009/03/29

卜部です。

[#38205] Re: big time — Tanaka Akira <akr@...> 2009/03/29

In article <49CF6641.7010204@ruby-lang.org>,

[#38218] rinda/eval.rb — Masatoshi SEKI <m_seki@...>

咳といいます。

20 messages 2009/03/30
[#38219] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/03/31

In article <F01982B3-FBB5-497F-BA36-38FA250E7D69@mva.biglobe.ne.jp>,

[#38223] Re: rinda/eval.rb — Masatoshi SEKI <m_seki@...> 2009/03/31

咳といいます。

[#38229] Re: rinda/eval.rb — "U.Nakamura" <usa@...> 2009/04/01

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

[#38233] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/04/01

In article <20090401095853.B00A.C613B076@garbagecollect.jp>,

[#38222] *BSD で fork できない理由 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>

きしもとです

12 messages 2009/03/31

[ruby-dev:38218] rinda/eval.rb

From: Masatoshi SEKI <m_seki@...>
Date: 2009-03-30 21:24:56 UTC
List: ruby-dev #38218
咳といいます。

RindaにLindaのevalを追加したいと思ってます。 
(1.8と1.9それぞれに)

Lindaのevalは新しいプロセスを生成して式を評価し、その結 
果をタプル
スペースへ投入するものです。
Rindaではブロックをforkしたプロセスで評価してその結果を 
タプルとして
投入するインターフェイスにするつもりです。


そこで新しいライブラリを追加するにあたって質問があります。

(1) forkをつかってもよいですか? たぶんWindowsで動 
作しません。
(2) ポータブルなテストがかけない気がしますが、なくてもかまい 
ませんか?
     open3とかどうしてるんだろ。

コードじたいはたぶんこんな↓感じです。

---
require 'drb/drb'
require 'rinda/rinda'

module Rinda
   class TupleSpace
     def rinda_eval(&blk)
       Rinda::rinda_eval(self, &blk)
     end
   end

   class TupleSpaceProxy
     def rinda_eval(&blk)
       Rinda::rinda_eval(@ts,  &blk)
     end
   end

   module_function
   def rinda_eval(ts)
     ts = DRbObject.new(ts) unless DRbObject === ts
     pid = fork do
       DRb.stop_service
       DRb.start_service('druby://127.0.0.1:0')
       place = TupleSpaceProxy.new(ts)
       tuple = yield(place)
       place.write(tuple)
     end
     Process.detach(pid)
   end
end




In This Thread

Prev Next