@m_seki の

I like ruby tooから引っ越し

MoreRinda修正しました。

MoreRindaのPTupleSpaceにバグが見つかったので修正しました。

RindaのTupleSpaceは期限付きでwriteしたタプルは、期限が過ぎると向こうになってtake, readしようとしても返さないようになってます。
MoreRindaに入ってる永続版のPTupleSpaceでも同様です。

PTupleSpaceはログを使って永続化を実現してます。明示的な削除(つまりtake)があった場合はログにも削除マークがつきます。
PTupleSpaceが再起動されるとき、ログを読んで前回の状態になるのですが、このとき期限が過ぎて無効扱いのタプルも復元していました。
それでもtakeやreadは期限をチェックするので無効なタプルがアプリケーションに見えることはないのですが、
notifyを使ってイベントを覗いている場合には、前回無効と判断されたタプルが再び無効と判断されてdeleteのイベントが届いてしまいます。

今回の修正では、ログを読んで復元する際に、期限切れのタプルを無視するとともに、ログにも削除マークをつけるようにしました。

これでPTupleSpaceの再起動後に余分なdeleteイベントが通知されることはなくなります。たぶん。

https://github.com/seki/MoreRinda/