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.
[ Parent
| on HN ]
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...