qemu-irix/include/qemu
Andrey Shedel 12f8def0e0 win32: replace custom mutex and condition variable with native primitives
The multithreaded TCG implementation exposed deadlocks in the win32
condition variables: as implemented, qemu_cond_broadcast waited on
receivers, whereas the pthreads API it was intended to emulate does
not. This was causing a deadlock because broadcast was called while
holding the IO lock, as well as all possible waiters blocked on the
same lock.

This patch replaces all the custom synchronisation code for mutexes
and condition variables with native Windows primitives (SRWlocks and
condition variables) with the same semantics as their POSIX
equivalents. To enable that, it requires a Windows Vista or newer host
OS.

Signed-off-by: Andrey Shedel <ashedel@microsoft.com>
[AB: edited commit message]
Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-Id: <20170324220141.10104-1-Andrew.Baumann@microsoft.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-03-27 14:41:01 +02:00
..
acl.h
atomic.h
base64.h
bcd.h
bitmap.h
bitops.h
bswap.h
buffer.h
compiler.h compiler: expression version of QEMU_BUILD_BUG_ON 2017-02-01 03:37:17 +02:00
config-file.h
coroutine.h coroutine-lock: make CoRwlock thread-safe and fair 2017-02-21 11:39:40 +00:00
coroutine_int.h aio: introduce aio_co_schedule and aio_co_wake 2017-02-21 11:14:07 +00:00
crc32c.h
cutils.h util/cutils: Change qemu_strtosz*() from int64_t to uint64_t 2017-02-23 20:35:36 +01:00
envlist.h
error-report.h
event_notifier.h
fifo8.h
fifo32.h
fprintf-fn.h
futex.h
hbitmap.h
help_option.h
host-utils.h host-utils: Implement unsigned quadword left/right shift and unit tests 2017-01-31 10:10:14 +11:00
id.h
int128.h
iov.h
jhash.h
log.h
main-loop.h
memfd.h
mmap-alloc.h exec, kvm, target-ppc: Move getrampagesize() to common code 2017-03-03 11:30:59 +11:00
module.h qmp: Dumb down how we run QMP command registration 2017-03-05 09:02:10 +01:00
notify.h
option.h keyval: New keyval_parse() 2017-03-07 16:07:46 +01:00
option_int.h
osdep.h mem-prealloc: reduce large guest start-up and migration time. 2017-03-14 13:26:36 +01:00
path.h
processor.h
qdist.h
qht.h
queue.h
range.h
ratelimit.h
rcu.h
rcu_queue.h
readline.h
seqlock.h
sockets.h
systemd.h qemu-ga: obey LISTEN_PID when using systemd socket activation 2017-03-19 11:12:12 +01:00
thread-posix.h
thread-win32.h win32: replace custom mutex and condition variable with native primitives 2017-03-27 14:41:01 +02:00
thread.h
throttle-options.h throttle: factor out duplicate code 2017-02-28 10:31:46 +01:00
throttle.h
timed-average.h
timer.h icount: process QEMU_CLOCK_VIRTUAL timers in vCPU thread 2017-03-14 13:51:34 +01:00
typedefs.h
unicode.h
uri.h
uuid.h
xattr.h