Hacker News
new
|
past
|
comments
|
ask
|
show
|
jobs
|
submit
login
JonChesterfield
41 days ago
|
parent
|
context
|
favorite
| on:
Optimizing a lock-free ring buffer
If it's a power of two, you don't need the branch at all. Let the unsigned index wrap.
loeg
41 days ago
|
next
[–]
You ultimately need a mask to access the correct slot in the ring. But it's true that you can leave unmasked values in your reader/writer indices.
dalvrosa
41 days ago
|
prev
[–]
Interesting, I've never heard about anybody using this. Maybe a bit unreadable? But yeah, should work :)
mandarax8
41 days ago
|
parent
|
next
[–]
See
https://fgiesen.wordpress.com/2012/07/21/the-magic-ring-buff...
which takes it even further :)
dalvrosa
41 days ago
|
root
|
parent
|
next
[–]
Nice one!
loeg
41 days ago
|
parent
|
prev
[–]
I believe ConcurrencyKit's impl does this.
https://github.com/concurrencykit/ck/blob/master/include/ck_...
Guidelines
|
FAQ
|
Lists
|
API
|
Security
|
Legal
|
Apply to YC
|
Contact
Search: