Comment #1 on issue 332 by
[hidden email]: expired Seaside30 sessions
served up until the expiry process explicitly removes the session
http://code.google.com/p/glassdb/issues/detail?id=332I walked through the code of WARcLastAccessExpiryPolicy to check this.
Since the lastCount instvar is only increased by the expiration task, the
method below will always return false when no expiration task is running.
In fact, the way I understand this is that a session will be expired only
if it has not been accessed in between runs of the expiration task (if the
counter value has not changed since last expiration task run). I don't
think there is another way of doing this if I understand the necessity of
the RcCounter usage correctly.
isExpired: timeout updating: updating
| value |
^(value := self counter value) > lastCount
ifTrue: [ "accessed since last scan"
updating
ifTrue: [
lastCount := value.
time := Time totalSeconds ].
false]
ifFalse: [ (Time totalSeconds - time) > timeout ]