Originally posted by F.Ultra
View Post
Assuming that a SPSC queue actually running at 500M TPS cannot use RMW operations, how would it know when to issue a FUTEX_WAKE call, how does it know reliably (without race condition) if the consumer has decided to block? After all, modifying the memory location isn't enough. It could check in certain time intervals, but then you don't need a wait-for-multiple-futexes API either. Besides, that would be the end of latency.
EDIT: And also: Whenever you make a FUTEX_WAKE call, a little dispatching won't hurt.
Comment