class DRb::TimerIdConv

[edit]

要約

オブジェクトと識別子を相互に変換するクラスです。これによって識別子に変換されたオブジェクトは一定時間 GC から保護されます。

DRb::DRbIdConv では to_id で識別子に変換し、リモートに送られたオブジェクトは GC から保護されません。ローカルプロセスからの参照がなくなったオブジェクトは、リモートからの参照が生きていたとしても GC によって廃棄される可能性があります。このクラスを DRb::DRbIdConv の代わりに用いることで、 to_id でオブジェクトを識別子に変換してから一定時間(DRb::TimerIdConv.new の timeout で指定した秒数) の間はそのオブジェクトは GC されないことが保証されます。

このクラスを使う場合はどのタイミングでオブジェクトが識別子に変換されるかを注意する必要があります。基本的にはオブジェクトをリモートに送る直前に変換されます。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

特異メソッド

new(timeout=600) -> DRb::TimerIdConv[permalink][rdoc][edit]

TimerIdConv のインスタンスを生成して返します。

[PARAM] timeout:
to_id で識別子に変換してからオブジェクトがGCされないことが保証される秒数

インスタンスメソッド

to_id(obj) -> Integer[permalink][rdoc][edit]

オブジェクトを識別子に変換します。

to_obj(ref) -> Object[permalink][rdoc][edit]

識別子をオブジェクトに変換します。