[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kahua-dev:00653] session と寿命を共にするオブジェクト



久住です.

以下の要求を満たすクラスを作りたいのですが, どうもうまくできないので
お知恵を拝借できないでしょうか.
1) sessionと寿命を共にするインスタンスを生成できる
2) すべてのインスタンスの集合を取得できる

# 具体的な応用は例のごとくWWW chatです^^;;
# http://www.soraneko.com/~nel/src/chat.kahua

最初は
  (ref (kahua-context-ref "session-state") 'なにかキーワード)
とかにset!したらよいかと思ったのですが, worker processは複数生成
できるようなので, 2)の条件を満たさない気がします.

そこで, sessionと寿命を共にするpersistentなobjectを作ったらいいのか
と考えましたが, その場合, 自前でsessionがtimeoutしたobjectをgcしてやる
必要がありそうです. sweep-session-stateのところにhookできるようにして
回収させようと思ったのですが, よく考えるとworker processが何かの理由で
無くなったときにはhookが消えてしまって, あんまりよくないです.

結局, timestampを自前でもたせて, timestampの更新, gcを自前で書いてし
まったのですが, なんか他にいい方法はないでしょうか?

最終的にはAPIが提供されるとうれしいなぁとおもいます.