I believe I have found some concurrency bugs that seem contrary to the fact that LruCacheNet is supposed to be a thread-safe library. Here are the bugs:
The following functions cannot be safely called from two concurrent threads since LruCacheNet.CacheEnumerator does not seem to be thread-safe:
-
Racing on LruCacheNet.CacheEnumerator.current:
1.1. LruCacheNet.CacheEnumerator.MoveNext()
1.2. LruCacheNet.CacheEnumerator.Reset()
1.3. LruCacheNet.CacheEnumerator.Dispose()
-
Racing on LruCacheNet.CacheEnumerator.cache:
2.1. LruCacheNet.CacheEnumerator.Dispose()
-
Racing on LruCacheNet.CacheEnumerator.head:
3.1. LruCacheNet.CacheEnumerator.Dispose()
3.2. LruCacheNet.CacheEnumerator.MoveNext()
I believe I have found some concurrency bugs that seem contrary to the fact that
LruCacheNetis supposed to be a thread-safe library. Here are the bugs:The following functions cannot be safely called from two concurrent threads since
LruCacheNet.CacheEnumeratordoes not seem to be thread-safe:Racing on
LruCacheNet.CacheEnumerator.current:1.1.
LruCacheNet.CacheEnumerator.MoveNext()1.2.
LruCacheNet.CacheEnumerator.Reset()1.3.
LruCacheNet.CacheEnumerator.Dispose()Racing on
LruCacheNet.CacheEnumerator.cache:2.1.
LruCacheNet.CacheEnumerator.Dispose()Racing on
LruCacheNet.CacheEnumerator.head:3.1.
LruCacheNet.CacheEnumerator.Dispose()3.2.
LruCacheNet.CacheEnumerator.MoveNext()