3 ms·
On page 5: > To find the index of an event, the application must mask the current tail index with the size mask of the ring. This commonly looks something like
by cash22 4y ago
On page 5:
> To find the index of an event, the application must mask the current tail index with the size mask of the ring. This
commonly looks something like the below:
unsigned head;
head = cqring→head;
read_barrier();
if (head != cqring→tail) {
struct io_uring_cqe *cqe;
unsigned index;
index = head & (cqring→mask);
cqe = &cqring→cqes[index];
/* process completed cqe here */
...
/* we've now consumed this entry */
head++;
}
cqring→head = head;
write_barrier();
Am I misunderstanding, or is "current tail index" supposed to be "current head index?"