Possible Race Conditions
Opened this issue · 0 comments
ppashakhanloo commented
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()