qemu-e2k/util
Paolo Bonzini fed20a70e3 coroutine-lock: make CoMutex thread-safe
This uses the lock-free mutex described in the paper '"Blocking without
Locking", or LFTHREADS: A lock-free thread library' by Gidenstam and
Papatriantafilou.  The same technique is used in OSv, and in fact
the code is essentially a conversion to C of OSv's code.

[Added missing coroutine_fn in tests/test-aio-multithread.c.
--Stefan]

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 20170213181244.16297-2-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-02-21 11:39:40 +00:00
..
acl.c
aio-posix.c async: remove unnecessary inc/dec pairs 2017-02-21 11:39:40 +00:00
aio-win32.c async: remove unnecessary inc/dec pairs 2017-02-21 11:39:40 +00:00
aiocb.c block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
async.c async: remove unnecessary inc/dec pairs 2017-02-21 11:39:40 +00:00
base64.c
bitmap.c
bitops.c
buffer.c
bufferiszero.c
compatfd.c
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
crc32c.c
cutils.c
envlist.c
error.c
event_notifier-posix.c
event_notifier-win32.c
fifo8.c migration: consolidate VMStateField.start 2017-02-13 17:27:13 +00:00
getauxval.c
hbitmap.c hbitmap: Add hbitmap_is_serializable() 2017-01-26 10:25:01 +08:00
hexdump.c
host-utils.c host-utils: Implement unsigned quadword left/right shift and unit tests 2017-01-31 10:10:14 +11:00
id.c
iohandler.c block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
iov.c
lockcnt.c
log.c
main-loop.c block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
Makefile.objs block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
memfd.c
mmap-alloc.c
module.c
notify.c
osdep.c
oslib-posix.c
oslib-win32.c
path.c
qdist.c
qemu-config.c
qemu-coroutine-io.c
qemu-coroutine-lock.c coroutine-lock: make CoMutex thread-safe 2017-02-21 11:39:40 +00:00
qemu-coroutine-sleep.c block: explicitly acquire aiocontext in timers that need it 2017-02-21 11:14:08 +00:00
qemu-coroutine.c aio: introduce aio_co_schedule and aio_co_wake 2017-02-21 11:14:07 +00:00
qemu-error.c
qemu-openpty.c
qemu-option.c util: add iterators for QemuOpts values 2017-02-09 17:28:49 +01:00
qemu-progress.c
qemu-sockets.c
qemu-thread-posix.c
qemu-thread-win32.c
qemu-timer-common.c
qemu-timer.c block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
qht.c
range.c
rcu.c
readline.c
thread-pool.c block: explicitly acquire aiocontext in aio callbacks that need it 2017-02-21 11:39:39 +00:00
throttle.c
timed-average.c
trace-events coroutine-lock: make CoMutex thread-safe 2017-02-21 11:39:40 +00:00
unicode.c
uri.c
uuid.c