simplified _cache_setdefault signature