RtMemoryCache accepts invalid priorities

Description

RtMemoryCache accepts the same priority ranges than SysCache, but in fact the underlying cache only handle a normal priority and a "never remove" priority, which usage is advised against.
Remove priority handling from RtMemoryCache.

Environment

None

Activity

Show:
Frédéric Delaporte
October 24, 2017, 9:40 AM
Edited

Priority was accepting values ranging from 1 to 6 (recommended 5 max, 6 matching NotRemovable on SysCache side), with one being the lowest priorty (first to get removed in case of memory stress). But for System.Runtime.Cache the only valid values are 0 (Default) and 1 (NotRemovable). System.Runtime.Cache current code seems to only ever test for NotRemovable, so value 2 to 6 were behaving like Default while 1 was behaving as highest priority: just the other way round than what was intended.

Since the thing was indeed broken, priority is now ignored by RtMemoryCache. Better ignore it than doing the opposite of what it was supposed to do. If having the ability to specify NotRemovable is needed, a new setting should be added, maybe directly named NotRemovable and taking a boolean, since there is not actually any level of priority in System.Runtime.Cache excepted forbidding expiry on memory stress.

Assignee

Frédéric Delaporte

Reporter

Frédéric Delaporte

Labels

None

Components

Fix versions

Affects versions

Priority

Minor
Configure