mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-22 01:20:39 +00:00
The Xen code registers a function that calls semaphore::signal as an interrupt handler, however that function is not smp safe and may crash, and in events it generates are likely to be ignored, since they are just appended to the reactor queue without any real wakeup to the reactor thread. Switch to using an eventfd. That's still unsafe, but a little better, since its signalling is smp safe, and will cause the reactor thread to wake up in case it was asleep. With this, we are able to receive multiple packets.