However, it's useful to have a way to use expired data in the cache, or to have other kinds of "stampede protection" (have the first process that hits an expired entry touch() it before regenerating it, so that other processes don't *also* try and regenerate it - thus the stampede effect). --ChuckHagenbuch