----Next_Part(Sun_Oct__9_12:21:24_2005_798)--
Content-Type: Multipart/Mixed;
 boundary-Next_Part(Sun_Oct__9_12:21:24_2005_798)--"

----Next_Part(Sun_Oct__9_12:21:24_2005_798)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

滝沢といいます.

Rinda::TupleSpaceでHashタプルを使いたいのですが,うまく行か
ない点があります.

やりたいことは,別プロセスで動作するタプルスペースに,dumpで
きないオブジェクトをwriteすることです.

添付したファイルを使い,以下のことを行いました.

(1) ひとつめのターミナルで,タプルスペースを公開.

      terminal1% ruby tuplespace.rb

(2) 別のターミナルで,別プロセスのタプルスペースにdumpできな
    いオブジェクトをwrite.

      terminal2% ruby foo.rb


上記のように実行したときに,terminal1では以下のような結果に
なります.

  terminal1% ruby tuplespace.rb  
  druby://localhost:12345
  []
  []
  []


terminal1では,foo.rbでwriteしたタプルがされて欲しいので
すが,上記のようにタプルスペースにマッチするタプルが置かれて
いません.

Rubyのバージョンは1.8.2,dRubyのバージョンは,2.0.4です.

使い方が悪いのでしょうか?よろしくお願いします.


----Next_Part(Sun_Oct__9_12:21:24_2005_798)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="tuplespace.rb"

#!/usr/bin/env ruby

require 'rinda/tuplespace'

ts  inda::TupleSpace.new
ts_uri  druby://localhost:12345'
DRb.start_service(ts_uri, ts)

puts DRb.uri

loop do
  p ts.read_all({"label" "foo", "foo" nil})
  sleep 3
end

----Next_Part(Sun_Oct__9_12:21:24_2005_798)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="foo.rb"

#!/usr/bin/env ruby

require 'drb/drb'

class Foo
  include DRbUndumped
end

foo  oo.new

DRb.start_service
ts  RbObject.new_with_uri('druby://localhost:12345')

ts.write({ "label" "foo",
           "foo" foo })

DRb.thread.join

----Next_Part(Sun_Oct__9_12:21:24_2005_798)----
----Next_Part(Sun_Oct__9_12:21:24_2005_798)----