Changelog
1.0.4
- Optim: less CPU usage when idle (3% old vs 0% new) (long waiting).
1.0.3
- Change: add
GC.@preserveto all getters likevar[]. This might be redundant and not necessary but just in case of segfault. It does not affect performance.
1.0.2
- Optim: fixes 100% CPU usage when waiting for taking and putting items.
- Feat: single-threaded
AtomicChannel{<:Any, false}and multi-threadedAtomicChannel{<:Any, true}. - Optim: speed of
_acquire_token!.
1.0.1
- Change: all
yield()are wrapped in try catch block now, in case an outer task sending InterruptException to the task that is inyield().
No performance degradation detected.
1.0.0
- Release.
- Change docs.
1.0.0-DEV2
Added
AtomicChannelandReusePooldocumentation pages.- MPMC benchmark workflow and versioned benchmark reports.
- Benchmark documentation page in Benchmark.
- Changelog page in docs.
Changed
- Improved MPMC throughput across Julia versions (1.8 through 1.12) under most tested contention patterns.
AtomicChanneltoken acquisition strategy now uses adaptive spin/yield behavior for better cross-version scheduler performance.- Updated benchmark summaries in README and docs.