qemu-e2k/util
Stefan Hajnoczi 3284c3ddc4 lockable: add lock guards
This patch introduces two lock guard macros that automatically unlock a
lock object (QemuMutex and others):

  void f(void) {
      QEMU_LOCK_GUARD(&mutex);
      if (!may_fail()) {
          return; /* automatically unlocks mutex */
      }
      ...
  }

and:

  WITH_QEMU_LOCK_GUARD(&mutex) {
      if (!may_fail()) {
          return; /* automatically unlocks mutex */
      }
  }
  /* automatically unlocks mutex here */
  ...

Convert qemu-timer.c functions that benefit from these macros as an
example.  Manual qemu_mutex_lock/unlock() callers are left unmodified in
cases where clarity would not improve by switching to the macros.

Many other QemuMutex users remain in the codebase that might benefit
from lock guards.  Over time they can be converted, if that is
desirable.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
[Use QEMU_MAKE_LOCKABLE_NONNULL. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-03-17 15:18:45 +01:00
..
aio-posix.c aio-posix: remove idle poll handlers to improve scalability 2020-03-09 16:45:16 +00:00
aio-posix.h aio-posix: remove idle poll handlers to improve scalability 2020-03-09 16:45:16 +00:00
aio-wait.c
aio-win32.c
aiocb.c
async.c util/async: make bh_aio_poll() O(1) 2020-02-22 08:26:47 +00:00
atomic64.c
base64.c
bitmap.c
bitops.c
buffer.c
bufferiszero.c util: add util function buffer_zero_avx512() 2020-03-16 23:02:21 +01:00
cacheinfo.c util/cacheinfo: fix crash when compiling with uClibc 2020-01-21 14:18:12 -10:00
compatfd.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
crc32c.c
cutils.c util/cutils: Turn FIXME comment into QEMU_BUILD_BUG_ON() 2019-12-18 12:26:25 +01:00
dbus.c util: add dbus helper unit 2020-01-06 18:41:32 +04:00
drm.c
envlist.c
error.c error: make Error **errp const where it is appropriate 2019-12-18 08:36:16 +01:00
event_notifier-posix.c
event_notifier-win32.c
fdmon-epoll.c aio-posix: support userspace polling of fd monitoring 2020-03-09 16:41:31 +00:00
fdmon-io_uring.c aio-posix: support userspace polling of fd monitoring 2020-03-09 16:41:31 +00:00
fdmon-poll.c aio-posix: support userspace polling of fd monitoring 2020-03-09 16:41:31 +00:00
fifo8.c
filemonitor-inotify.c
filemonitor-stub.c
getauxval.c
guest-random.c replay: record and replay random number sources 2020-01-07 12:08:39 +01:00
hbitmap.c
hexdump.c
host-utils.c
id.c chardev: generate an internal id when none given 2020-01-07 16:50:09 +04:00
iov.c
iova-tree.c
keyval.c
lockcnt.c
log.c linux-user: Use `qemu_log' for strace 2020-02-19 11:17:40 +01:00
main-loop.c
Makefile.objs aio-posix: add io_uring fd monitoring implementation 2020-03-09 16:41:31 +00:00
memfd.c
mmap-alloc.c
module.c modules: load modules from versioned /var/run dir 2020-03-16 23:02:22 +01:00
notify.c
nvdimm-utils.c mem: move nvdimm_device_list to utilities 2020-02-21 09:15:03 +11:00
osdep.c util/osdep: Improve error report by calling error_setg_win32() 2020-03-09 13:36:15 +01:00
oslib-posix.c oslib-posix: initialize mutex and condition variable 2020-03-16 23:02:22 +01:00
oslib-win32.c
pagesize.c
path.c
qdist.c
qemu-co-shared-resource.c
qemu-config.c
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c qemu-coroutine-sleep: Silence Coverity warning 2019-11-18 16:01:34 -06:00
qemu-coroutine.c
qemu-error.c error: Fix -msg timestamp default 2019-12-18 08:36:15 +01:00
qemu-openpty.c
qemu-option.c
qemu-print.c
qemu-progress.c
qemu-sockets.c
qemu-thread-common.h
qemu-thread-posix.c
qemu-thread-win32.c
qemu-timer-common.c Remove support for CLOCK_MONOTONIC not being defined 2020-02-12 16:23:01 +01:00
qemu-timer.c lockable: add lock guards 2020-03-17 15:18:45 +01:00
qht.c
qsp.c qsp: Use WITH_RCU_READ_LOCK_GUARD 2019-12-17 19:33:52 +01:00
range.c
rcu.c
readline.c
stats64.c
sys_membarrier.c
systemd.c
thread-pool.c
throttle.c
timed-average.c
trace-events aio-posix: remove idle poll handlers to improve scalability 2020-03-09 16:45:16 +00:00
unicode.c
uri.c
uuid.c
vfio-helpers.c Report stringified errno in VFIO related errors 2020-02-18 20:20:49 +01:00