Releases: puzpuzpuz/xsync
Releases · puzpuzpuz/xsync
v3.0.0
- Replace the user-defined hash function in MapOf factories with a built-in fast hash function (#107, #108)
All New*MapOf*
functions are now replaced with the NewMapOf
and NewMapOfPresized
functions. There is no longer a need to provide a user-defined hash function.
Kudos go to @destel
v2.5.1
- Speed up built-in string hash function (#106)
v2.5.0
- Add concurrent queue with generics support (
MPMCQueueOf
) (#104)
v2.4.1
- Fix nextPowOf2 on zero input (#98)
- Fixes the initial capacity of maps presized to a very small capacity (less than 3)
v2.4.0
- Add presized constructors for
Map
and MapOf
(#86)
- Fix potential iteration over duplicate keys in
Map
/MapOf.Range
(#87 and #88)
v2.3.2
- Optimize MapOf.Range (#82)
- Report throughput metric in benchmarks (#81)
- Update benchmark results page (#83)
Thanks @felixge for holding a comprehensive (and lengthy) benchmarks run.
v2.3.1
- New MapOf design (#78)
MapOf
now takes full advantage of Go generics: less GC pressure, less atomic operations on reads, also improved integer hash function
- If you're into benchmarking, comparisons with other concurrent map implementations are welcome (see this and this PRs as comparison examples)
v2.3.0
- Optimize
MapOf
integer hash function (#76)
- Optimize
RBMutex
footprint and thread-to-slot distribution (#75)
- This is a breaking change.
NewRBMutex()
function must be called now to initialize a RBMutex
.
v2.2.0
- Optimize
Counter
thread-to-stripe distribution (#71 and #74)
- This is a breaking change.
NewCounter()
function must be called now to initialize a Counter
.
v2.1.0
- Add Clear method to Map and MapOf (#64)
- Add Compute method to Map (#68 and #69)
- Fix the second valueFn call in MapOf.LoadOrCompute (#66)
Thanks @psyhatter and @veqryn for the contribution.