Releases: GavinClarke0/lockless-generic-ring-buffer
v0.1.2
Release Changes
=> Changed reader, writer index logic to now mean that the value of the index is the last value read/written to.
=> Removed locks and simplified consumer add operations. This now better suits one of the original intended use cases of being able to remove/add consumers rapidly when using the buffer in a broadcast pattern.
=> Changed loop operations on readers to now yield on first indication write is not currently possible. Replace loop and if statements with goto to retry write on failure reducing branching on successful and yielding write operations. This was found to improve speed significantly in concurrent environments.
=> Refactor buffer itself to use consistent naming for reader value
=> make tests use same implementation to ensure read/write order is consistent
=> Update readme with new benchmarks
Simplified Consumer
Remove mutex from add/remove consumer and replace with simplified logic only using atomic operations.
v0.1.0
Merge pull request #19 from GavinClarke0/dev fix name of package
v.0.0.3: Merge pull request #19 from GavinClarke0/dev
- Performance improves due to move to int array from pointer array for consumer buffer position increasing cache hits.
- fix path names
v.0.0.2: Merge pull request #14 from GavinClarke0/dev
Simplify Consumer Logic, Add more tests for removing consumers, fix race conditions
v0.0.1: Merge pull request #6 from GavinClarke0/rename-package
Initial release. Limited features and incomplete test coverage.