55件ヒット
[1-55件を表示]
(0.131秒)
別のキーワード
種類
- インスタンスメソッド (22)
- クラス (11)
- ライブラリ (11)
- 特異メソッド (11)
ライブラリ
-
rinda
/ tuplespace (44)
クラス
-
Rinda
:: TupleEntry (11) -
Rinda
:: TupleSpace (22)
キーワード
- TupleSpace (11)
- notify (11)
- renew (11)
-
rinda
/ rinda (11)
検索結果
先頭5件
-
Rinda
:: TupleSpace . new(period = 60) -> Rinda :: TupleSpace (26101.0) -
Rinda::TupleSpace オブジェクトを生成します。
Rinda::TupleSpace オブジェクトを生成します。
period で掃除用スレッドが動く周期を指定します。
このスレッドでは cancel されたタプルや expire(期限切れ、タイムアウト) された
タプルをタプルスペース内から取り除きます。
@param period cancel/expireされたタプルを取り除く周期を秒で指定します -
Rinda
:: TupleEntry # renew(sec _ or _ renewer) -> () (14200.0) -
タプルの有効期限を更新します。
...or_renewer によって以下のように更新されます。
* nil : 遠い未来(実質的に無限)を指定します。詳しくは Rinda::TupleEntry#expires 参照
* true : 直ちに有効期限切れになるよう指定します
* 数値 : 有効期限を現在から sec_or_renewer......秒後に指定します
* それ以外 : renew メソッドを持っていると仮定され、そのメソッドの呼び出し結果を用います。
renew メソッドは nil, true, 数値のいずれかを上のルールに従って返さなければなりません。... -
Rinda
:: TupleSpace # notify(event , pattern , sec = nil) -> Rinda :: NotifyTemplateEntry (8018.0) -
event で指定した種類のイベントの監視を開始します。
...タプルのパターン
@param sec 監視期間の長さ(秒数)
=== 例
require 'rinda/tuplespace'
tuplespace = Rinda::TupleSpace.new
observer = tuplespace.notify("write", ["xyz", nil, nil])
Therad.new do
observer.each{|event, tuple| p event, tuple }
end
tuplespace.write(["... -
Rinda
:: TupleSpace (8012.0) -
Tuple Space を表すクラスです。
...drb 経由で利用する側は
DRb::DRbObject.new_with_uri などでこのオブジェクトのリモートオブジェクトを
取得し、Rinda::TupleSpaceProxy をかぶせることで利用します。
===[a:renewer] タプルの寿命と renewer
タプルを Rinda::TupleSpace#write など......leSpace.new の
引数で指定した秒数ごとに「掃除用スレッド」が動き、それによって
cancel されたタプルや期限切れになったタプルが削除されます。
sec には秒数の代わりに renewer を指定することもできます。
これは renew とい......ジェクトで、上で説明した掃除用スレッドに
よって renew メソッドが呼び出されます。renew が 正の秒数を返した
場合、有効期限がその秒数に更新されます。ただし、renew はタプルの有効期限が
切れていない場合のみ呼び出... -
rinda
/ rinda (42.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
...1要素最初の要素を
限定することで必要なタプルのみを取り出します。
タプルスペースそのものの実装は rinda/tuplespace でなされています。
このライブラリはタプルスペースへのアクセス機能等を提供します。
=== 参考
* ht......プロセスを
一意に同定しているからです。
# rinda_ts.rb
require 'drb/drb'
require 'rinda/tuplespace'
uri = ARGV.shift
DRb.start_service(uri, Rinda::TupleSpace.new)
puts DRb.uri
DRb.thread.join
# rindas.rb
require 'drb/drb'
require 'rinda/rinda'
def do_......do_it(#{v})"
v + v
end
uri = ARGV.shift || raise("usage: #{$0} <server_uri>")
DRb.start_service
ts = Rinda::TupleSpaceProxy.new(DRbObject.new(nil, uri))
while true
r = ts.take(['sum', nil, nil])
v = do_it(r[2])
ts.write(['ans', r[1], r[2], v])
end
# rindac.rb...