--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-sympathy+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
It's very interesting, but doesn't it suffer from blocking? If
producer P1 gets scheduled out between its two atomic writes, then
all consumers will not be able to dequeue anything, even though
other producers were successfully able to queue their data. Maybe
it's not an issue for throughput-oriented workloads.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.
00007ffe`162b0b67 498bc8 mov rcx,r8 ;read to result var
00007ffe`162b0b6a e891325f5f call clr!JIT_CheckedWriteBarrier (00007ffe`758a3e00)
00007ffe`162b0b6f 8d443701 lea eax,[rdi+rsi+1] ;
sequence = pos + bufferMask + 1
00007ffe`162b0b73 33d2 xor edx,edx ;null
00007ffe`162b0b75 8903 mov dword ptr [rbx],eax ;write sequence
00007ffe`162b0b77 48895308 mov qword ptr [rbx+8],rdx ;write null
Do you mean that the latency is bounded by a few nanoseconds?
That only happens if the producer thread is never preempted.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.