[*] Fix: axboe is a piss baby retard who cant even write a thread safe ring buffer
This is the dude tasked with managing Linshits IO stack, including the fundamentally flawed muh zero-syscall pissring, the fucked io_submit apis that never worked properly (incl io_cancel that spuriously returns EINVAL despite all magics matching), the retard who stuck to Linus's idea that MUH O_DIRECT IS LE EVIL YOU MUST USE MY CACHES REEE REEE, and the retard who got indirectly called out by Linus as being apart of the database maintainers who Linus didn't/doesnt like and who wanted these APIs in the first place.
This commit is contained in:
parent
75f6325ee2
commit
72b09cb085
@ -227,15 +227,21 @@ namespace Aurora
|
||||
|
||||
while (i < max_nr)
|
||||
{
|
||||
auto head = pRing->head;
|
||||
auto head = AuAtomicLoad(&pRing->head);
|
||||
if (head == pRing->tail)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
events[i++] = pRing->events[head];
|
||||
read_barrier();
|
||||
pRing->head = (head + 1) % pRing->nr;
|
||||
|
||||
auto nextHead = (head + 1) % pRing->nr;
|
||||
if (AuAtomicCompareExchange(&pRing->head,
|
||||
nextHead,
|
||||
head) != head)
|
||||
{
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
if (!i &&
|
||||
|
Loading…
Reference in New Issue
Block a user