coroutine-lock: make CoRwlock thread-safe and fair
commita7b91d35bab97a2d3e779d0c64c9b837b52a6cf7
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 13 Feb 2017 18:12:44 +0000 (13 19:12 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 21 Feb 2017 11:39:40 +0000 (21 11:39 +0000)
treeadb74f4b9f4dd306e33196dc2107aeabe7e9a42a
parent1ace7ceac507d90d50ecb2e13f7222beadb64d92
coroutine-lock: make CoRwlock thread-safe and fair

This adds a CoMutex around the existing CoQueue.  Because the write-side
can just take CoMutex, the old "writer" field is not necessary anymore.
Instead of removing it altogether, count the number of pending writers
during a read-side critical section and forbid further readers from
entering.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 20170213181244.16297-7-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
include/qemu/coroutine.h
util/qemu-coroutine-lock.c