20 Jul
2022
20 Jul
'22
4:50 p.m.
On Mon, 18 Jul 2022 at 05:08, Conor McCarthy <cmccarthy(a)codeweavers.com> wrote:
Otherwise the following sequence can occur: 1. A command queue is added to the blocked list during a Wait() call. 2. An unblocking Signal() occurs on the CPU in another thread, flushing the blocked ops, but as no op has been written, the queue is removed from the blocked list. 3. The blocked op is written. 3. Another op is queued and the queue is not re-added to the blocked list because this only happens for the first op.
There are two "3."'s in that sequence. In a certain sense that's fitting, but it still seems unintentional.