Releases: AlexsanderHamir/GenPool
Release v1.6.6
What'a New ?
On the put method procPin is not longer called, the processor index is cached on get and reused on put.
What's Changed
- clean ups by @AlexsanderHamir in #25
- Optimizations by @AlexsanderHamir in #26
- Optimizations by @AlexsanderHamir in #27
Full Changelog: v1.6.5...v1.6.6
Release v1.6.5
What's New
More micro-optimizations were performed, pool improved by another 5%.
What's Changed
- Optimizations by @AlexsanderHamir in #21
- Micro Optimization by @AlexsanderHamir in #22
- Organization by @AlexsanderHamir in #23
- Optimizations by @AlexsanderHamir in #24
Full Changelog: v1.6.4...v1.6.5
v1.6.4
What's New ?
Performed some micro-optimizations which improve individual function performance in 6%.
What's Changed
- performance reporting by @AlexsanderHamir in #17
- Performance Work Finished by @AlexsanderHamir in #18
- Optimizations by @AlexsanderHamir in #19
- removing bloat by @AlexsanderHamir in #20
Full Changelog: v1.6.3...v1.6.4
Release v1.6.3
What's New?
When the pool reaches its maximum size, users now have two new blocking options instead of receiving nil:
GetBlock: Waits until an object becomes available in the pool.PutBlock: Returns the object to the shard with the highest number of waiting consumers.
These methods provide more predictable and coordinated pool behavior under contention.
Each shard uses a condition variable internally to coordinate blocking calls.
Release v1.6.2
Updates
Fixed Critical Growth Configuration Bug
In the previous release, growth configuration was implemented but contained a critical bug: the pool cleaner wasn't properly updating the pool's internal counters. This caused the following issues:
- Once
maxgrowthwas reached, the pool would become permanently stuck at maximum size - Even after the cleaner evicted objects, the pool couldn't grow again because the internal length counter wasn't decremented
- This effectively disabled the growth mechanism once it first hit its maximum.
Release v1.6.1
What's New?
-
Configurable Maximum Pool Size
You can now set an upper limit on how many objects the pool is allowed to grow to, giving you tighter control over memory usage. -
Real-Time Pool Size Tracking
The pool now keeps track of its current size. While primarily used internally by growth policies, this metric is also exposed for external monitoring or debugging.
Full Changelog: v1.6.0...v1.6.1
Release v1.6.0
Removed Features
- GetNCheap(): It was unnecessary and solved no problems,
GetNshould barely be used as it is.
Codebase Changes
- Extensive use of linters led to many code changes, enforcing best practices across the codebase.
- Prevent direct pushes to the main branch; require that pull requests pass GitHub Actions checks before merging.
- Achieve 99% test coverage through a combination of black-box and unit testing.
- numShards is now configurable, no longer fixed to just min
(max(runtime.GOMAXPROCS(0), 8), 128).
What's Changed
- Refactors by @AlexsanderHamir in #6
- Linter Problems by @AlexsanderHamir in #7
- removing from archive by @AlexsanderHamir in #8
- Refactors by @AlexsanderHamir in #9
- coverage support by @AlexsanderHamir in #10
- Refactors by @AlexsanderHamir in #11
Full Changelog: v1.5.5...v1.6.0
Release v1.5.5
What's New ?
- Simplified names of legacy methods.
- Added new methods for bulk operations.
- Added fast path for bulk operations to avoid creating memory.
Full Changelog: v1.5.0...v1.5.5
Release v1.5.0
What's Changed
- Drop "reflect" package using proper type constraints by @DmitriyMV in #1
- Fix "index of bounds" panic if GOMAXPROCS changes by @DmitriyMV in #3
- The API verbosity caused by the intrusive style was removed.
- Levels for the cleanup policy were implemented to provide pre-defined choices.
- Internal fields were made public to allow for custom clean up functionality for power users.
- Because of @DmitriyMV contributions, performance was greatly improved.
New Contributors
- @DmitriyMV made their first contribution in #1
Full Changelog: v1.4.1...v1.5.0
v1.4.1
What's New ?
- Memory leak during clean up problem was solved.
- Better testing coverage.
- Dead code eliminated.
- Reduced binary size by only including the necessary.
- Fixed race conditions.
Full Changelog: v1.4.0...v1.4.1