OSDN Git Service

coroutine-lock: convert CoQueue to use QemuLockable
authorPaolo Bonzini <pbonzini@redhat.com>
Sat, 3 Feb 2018 15:39:33 +0000 (10:39 -0500)
committerFam Zheng <famz@redhat.com>
Thu, 8 Feb 2018 01:22:03 +0000 (09:22 +0800)
commit1a957cf9c4637abe4b7d67a91312a2565306641e
tree87e0fd36d854ef98c836615f6055c7203bb07f49
parente70372fcaffc99444edce400a5178cb196cddaf7
coroutine-lock: convert CoQueue to use QemuLockable

There are cases in which a queued coroutine must be restarted from
non-coroutine context (with qemu_co_enter_next).  In this cases,
qemu_co_enter_next also needs to be thread-safe, but it cannot use
a CoMutex and so cannot qemu_co_queue_wait.  Use QemuLockable so
that the CoQueue can interchangeably use CoMutex or QemuMutex.

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