chore(deps): update module github.com/puzpuzpuz/xsync/v3 to v4
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| github.com/puzpuzpuz/xsync/v3 | v3.5.1 -> v4.1.0 |
Release Notes
puzpuzpuz/xsync (github.com/puzpuzpuz/xsync/v3)
v4.1.0
- New data structure:
UMPSCQueue#168 - Speed up
LoadAndDeleteandDeletein case of non-existingMapkey #167 - Parallel
Mapresize #170
UMPSCQueue is meant to serve as a replacement for a channel. However, crucially, it has infinite capacity. This is a very bad idea in many cases as it means that it never exhibits backpressure. In other words, if nothing is consuming elements from the queue, it will eventually consume all available memory and crash the process. However, there are also cases where this is desired behavior as it means the queue will dynamically allocate more memory to store temporary bursts, allowing producers to never block while the consumer catches up.
From now on, Map spawns additional goroutines to speed up resizing the hash table. This can be disabled when creating a Map with the new WithSerialResize setting:
m := xsync.NewMap[int, int](xsync.WithSerialResize())
// resize will take place on the current goroutine only
for i := 0; i < 10000; i++ {
m.Store(i, i)
}
Thanks @PapaCharlie and @llxisdsh for the contributions!
v4.0.0
- Minimal Golang version is now 1.24.
- All non-generic data structures are now removed. Generic versions should be used instead - they use the old names, but type aliases are present to simplify v3-to-v4 code migration.
MapOf's hasher API is gone. The default and only hash function is now based onmaphash.Comparable.Map'sComputeAPI now supports no-op (cancel) compute operation.
Thanks @PapaCharlie for making this release happen
Migration notes
- The old
*Oftypes are kept as type aliases for the renamed data structures to simplify the migration, e.g.MapOfis an alias forMap. NewMapOfPresizedfunction is gone.NewMapcombined withWithPresizeshould be used instead.Map.Computemethod now expectsvalueFnto return aComputeOpvalue instead of a boolean flag. That's to support compute operation cancellation, so that the call does nothing.Map.LoadOrTryComputemethod is renamed toLoadOrCompute. The oldLoadOrComputemethod is removed as it was redundant.
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
Need to wait before the next golang release because it requires go 1.24 (and we support two last go version)
Go 1.25 has been released, so we can merge this one