Anthony Liguori wrote:
The wait command will pause the monitor the command was issued in
until a new
event becomes available. Events are queued if there isn't a waiter present.
The wait command completes after a single event is available.
How do you stop a wait if there are no pending events?
Today, we queue events indefinitely but in the future, I suspect
we'll drop
events that are older than a certain amount of time to avoid infinitely
allocating memory for long running VMs.
This queueing plug the race where an event happens immediately after a
wait completes. But it could be avoided completely by having
asynchronous notifications on a single monitor.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.