Well I think I can commit something very simple that could help you,
Currently session expiration mechanism considered only the time
threshold ... but the lift GC is keeping it alive. So we can have
LiftSession#terminateHint function that just marks a flag on this
LiftSession. SessionMaster can consider this and purge the session
properly at the next sessions scan. So you can have an actor where
you're sending messages via ActorPing such as:
ActorPing schedule(MyActor, Purge(S.session), 120 seconds)
When you receive the Purg message on the received LiftSession just
call session.terminateHint. (Note that S.session is a Box
[LiftSession])
The questions would be when am I going to do this scheduling? ... Well
probably right after you are setting a value on your SessionVar.
If someone has any objections about this please do let me know.
Otherwise I could probably commit this today.
Br's,
Marius