This release includes a variety of improvements to the utility
- Thread names are checked at polling time, so if threads are renamed we will try to indicate the different names we witnessed
- Profiled threads are now sorted by their name, hopefully grouping similar threads together
- Common stack traces (like idle
PrioritySchedulerthreads for example) are now simplified in
- Minor performance improvements and memory usage reductions
TestConditionwas improved to allow a
Predicate<T>constructor, so that on failure the last result / condition can be reported
ListenableFuture.mapFailuregenerics improvements. Not likely to be realized except for in very specific situations.
Other changes / deprecations:
StripedLockis deprecated for removal (if you want this maintained in 6.0 please open an issue). PR #239 and #240 removed our internal use of it by instead using
Map.computeas a way of doing per-key memory barriers. Feel free to open an issue if you want to discuss maintaining it. Current thoughts are that those changes are likely simpler (despite the complexity of capturing results from inside
computeblocks). This also resulted in several constructors where an estimated
parallismLevelcould be specified in being deprecated. As those PR's show other internal (but otherwise should be transparent) changes were done to support this.
DoNothingRunnableshould no longer be constructed, but instead referenced by
KeyedRateLimiterExecutorno longer schedules a task per key. Instead it has a single task to examine all keys. This may result in limiters living a bit longer, but should overall perform better under heavy load.