]> git.proxmox.com Git - mirror_qemu.git/commit
qemu-thread: introduce QemuLockCnt
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 12 Jan 2017 18:07:52 +0000 (19:07 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 16 Jan 2017 13:25:17 +0000 (13:25 +0000)
commit51dee5e465e1b3454a886792ca3e14b851e8e67d
tree33d418609cae2d5251a509cf60dce904dd714bc4
parentcf2c02c8ea0f2d7888f3b45b20e7eb24b47a93f1
qemu-thread: introduce QemuLockCnt

A QemuLockCnt comprises a counter and a mutex, with primitives
to increment and decrement the counter, and to take and release the
mutex.  It can be used to do lock-free visits to a data structure
whenever mutexes would be too heavy-weight and the critical section
is too long for RCU.

This could be implemented simply by protecting the counter with the
mutex, but QemuLockCnt is harder to misuse and more efficient.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20170112180800.21085-3-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
docs/lockcnt.txt [new file with mode: 0644]
include/qemu/thread.h
util/Makefile.objs
util/lockcnt.c [new file with mode: 0644]