diff options
| author | Paolo Bonzini | 2018-02-03 16:39:32 +0100 |
|---|---|---|
| committer | Fam Zheng | 2018-02-08 02:22:03 +0100 |
| commit | e70372fcaffc99444edce400a5178cb196cddaf7 (patch) | |
| tree | c79196b96035dfb317518b22df44c806017ed79c /fsdev | |
| parent | test-coroutine: add simple CoMutex test (diff) | |
| download | qemu-e70372fcaffc99444edce400a5178cb196cddaf7.tar.gz qemu-e70372fcaffc99444edce400a5178cb196cddaf7.tar.xz qemu-e70372fcaffc99444edce400a5178cb196cddaf7.zip | |
lockable: add QemuLockable
QemuLockable is a polymorphic lock type that takes an object and
knows which function to use for locking and unlocking. The
implementation could use C11 _Generic, but since the support is
not very widespread I am instead using __builtin_choose_expr and
__builtin_types_compatible_p, which are already used by
include/qemu/atomic.h.
QemuLockable can be used to implement lock guards, or to pass around
a lock in such a way that a function can release it and re-acquire it.
The next patch will do this for CoQueue.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20180203153935.8056-3-pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Diffstat (limited to 'fsdev')
0 files changed, 0 insertions, 0 deletions
