Skip to content

v2.5.4

Latest
Compare
Choose a tag to compare
@bitfaster bitfaster released this 28 Jun 23:53
· 10 commits to main since this release
28e4692

What's changed

  • Eagerly purge deleted items from internal ConcurrentLru queues. Previously, deleted items remain in the internal queues until fully cycled out of cold. Instead, purge them as items transition from queue to queue (e.g. from hot to warm) as part of cycle.
  • Fix UnobservedTaskException for value creation when using AsAsyncCache()/AsyncAtomicFactory/ScopedAsyncAtomicFactory. If there is an exception when invoking the value factory delegate, the internal TaskCompletionSource has an exception set that previously was not observed unless another thread concurrently evaluated the result. Fixed by @advdotnet.
  • In ConcurrentLru.Trim() avoid incorrectly trimming an extra warm item when values are trimmed from cold but not warm.
  • ConcurrentLru.TrimExpired() is now thread safe.
  • Minor code cleanups by @Joy-less.

Full changelog: v2.5.3...v2.5.4