monitor: do not use mb_read/mb_set
commiteea7cd3fc5139d7523f3c7a67d9c864b944dfacd
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Mar 2023 11:34:01 +0000 (15 12:34 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 25 May 2023 08:18:33 +0000 (25 10:18 +0200)
tree164f3e6f4bf4d1267c4eb647d2166fe6e3a445c3
parent60f4f62efeb174fe7433ce9ebc37836e70ec9b75
monitor: do not use mb_read/mb_set

Instead of relying on magic memory barriers, document the pattern that
is being used.  It is the one based on Dekker's algorithm, and in this
case it is embodied as follows:

    enqueue request;              sleeping = true;
    smp_mb();                     smp_mb();
    if (sleeping) kick();         if (!have a request) yield();

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
monitor/qmp.c