https://github.com/probably-not/q
An attempt at building out the lock-free, concurrent, generic queue as minimally as possible, similar to what is described in this blog post
https://github.com/probably-not/q
Last synced: about 1 year ago
JSON representation
An attempt at building out the lock-free, concurrent, generic queue as minimally as possible, similar to what is described in this blog post
- Host: GitHub
- URL: https://github.com/probably-not/q
- Owner: probably-not
- Created: 2022-05-16T14:44:25.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-16T15:39:38.000Z (about 4 years ago)
- Last Synced: 2025-01-07T06:32:12.337Z (over 1 year ago)
- Language: Go
- Homepage: https://nullprogram.com/blog/2022/05/14/
- Size: 35.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# q
An attempt at building out the lock-free, concurrent, generic queue in 32 bits described [here](https://nullprogram.com/blog/2022/05/14/).
We might not get it in 32 bits, but let's see.
## Caveats, Notes, etc.
This is probably not ready for production. There are a lot of caveats for working with it (see the package docs for more information).
This is not meant as a "better channel" implementation, it is very much not an implementation of a channel, and it barely does anything that channels do.
This is 100% a learning project to see whether I could implement the design found in the link above, along with seeing how to squeeze out every inch of performance that I can from it.
This only supports Go 1.17+, since we are using features only available after Go 1.17.