| A weak reference which is held strongly for a while after last access.
Lifecycle:
- Created. Referent held strongly. A task is scheduled into the request
processor for some time in the future (currently 15 seconds).
- Expired. After the timeout, the reference switches to a normal weak
reference.
- Touched. If the value is accessed before it is garbage collected,
whether the reference is expired or not, the reference is "touched".
This means that the referent is again held strongly and the timeout
is started from scratch.
- Dead. If after expiry there is no access before the next full GC cycle,
the GC algorithm may reclaim the reference. In this case the reference
of course dies.
author: Jesse Glick |