Comments (3)
Hi
Thanks for the feedback. I have added a couple of tests and started exploring a potential solution on branch feat/policy-callbacks-should-unwrap-the-lazy. Fancy taking a look to see if the tests reproduce the issue you were experiencing?
from lazycache.
Just had a chance to look at it at glance. I think you may have a bug in that fix, since you never actually assign the value from the Lazy<T>.Value
property in the ternary operator
Also, the recursion on the next line will introduce a StackOverflowException:
policy.RemovedCallback = (args) =>
{
//unwrap the cache item in a removed callback given one is specified
if (args != null && args.CacheItem != null)
{
var item = args.CacheItem.Value;
if (item is Lazy<T>)
{
var lazyCacheItem = (Lazy<T>) item;
args.CacheItem.Value = lazyCacheItem.IsValueCreated ? item : null; // <-- still using the Lazy object
}
}
policy.RemovedCallback(args); //<-- will cause StackOverflowException
};
I'll fork and see if I can fix that so we can get this to pass. Thanks again for getting this fix started!
from lazycache.
This should be all sorted now. Version 0.6 up on nuget. Let me know any issues and thanks for the help.
from lazycache.
Related Issues (20)
- Why it is not possible to add null items in the cache via IAppCache.Add ? HOT 9
- Using ExpirationMode.ImmediateEviction ignores sliding expiration value HOT 7
- How to Proactively Repopulate Cached Items with EF? HOT 9
- Get doesn't call function delegate added with Add HOT 4
- Named binding error after upgrading ninject package HOT 1
- LazyCache.TryGetValue appears to return null value HOT 17
- Create a sectioned IAppCache
- how do I clean the cache items by wildcard of a key HOT 2
- Add TryGetValueAsync that evaluates GetValueFromAsyncLazy HOT 1
- Cache eviction policy when cache is full? HOT 1
- Absolute expiration does not work v2.4.0 HOT 1
- Implement MemoryCache.Trim() to allow explicit removal
- LongRunning shouldn't run more than once HOT 1
- About Cache availability mechanism HOT 2
- CachingService.TryGetValue returning wrong value HOT 2
- Cannot dispose of cache HOT 3
- How to create separate caches? Not seeing how this is done. HOT 1
- Do you have plans to upgrade to dotnet7 HOT 5
- Question/Proposal on the limit of Cache keying to strings vs. "TKey"
- Is it possible to have some kind of management console to show the list of keys and their expiry?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lazycache.