News for hackers. Stuff that matters.
Re:Yes, You Have Been Writing SPSC Queues Wrong by jessaustin on Thursday December 15, 2016 @12:56PM (#13186540)
Why is push() checking for overlap? I thought not caring about that was the point of a ring buffer?

[EDIT:] To clarify for those who didn't (couldn't?) read TFA's first sentence, it specifically invokes "I've been writing ring buffers wrong all these years" [0], recently featured on HN.

[0] https://www.snellman.net/blog/archive/2016-12-13-ring-buffer...

Re:Yes, You Have Been Writing SPSC Queues Wrong by alfalfasprout on Thursday December 15, 2016 @01:25PM (#13186822)
Depends how you use it. For buffering realtime data if latency is of chief concern then by all means, discard the old stuff. If the desired behavior is to block when the queue is full, then you need to check for an overlap.
Re:Yes, You Have Been Writing SPSC Queues Wrong by loeg on Thursday December 15, 2016 @02:32PM (#13187444)
If you're overwriting old data you still need to check for overlap and advance the read index if you're overrunning old data.
Re:Yes, You Have Been Writing SPSC Queues Wrong by jessaustin on Thursday December 15, 2016 @03:01PM (#13187750)
Thanks, this is what I was missing, and seems right in general. I think the old ring buffers I'm remembering just decided that reading out-of-order was a fitting punishment for not reading often enough. After all there is a bit of a race for the read index here...
Re:Yes, You Have Been Writing SPSC Queues Wrong by LgWoodenBadger on Thursday December 15, 2016 @01:19PM (#13186757)
I can't read the site because it's blocked for me, but isn't a ring-buffer a different class of data-structure than a queue? AIUI, queues are for non-lossy FIFO behavior.
Re:Yes, You Have Been Writing SPSC Queues Wrong by loeg on Thursday December 15, 2016 @02:30PM (#13187432)
No, ring buffers are just an implementation of a queue. You can implement lossy/lossless ring buffers or linked-list queues.
Re:Yes, You Have Been Writing SPSC Queues Wrong by NotThe1Pct on Thursday December 15, 2016 @01:23PM (#13186796)
My $10/mo shared host is already spinning with ycomb+linkedin traffic. I shall upgrade...