]> git.proxmox.com Git - mirror_qemu.git/commit - trace/simple.c
glib-compat.h: add new thread API emulation on top of pre-2.31 API
authorMichael Tokarev <mjt@tls.msk.ru>
Thu, 8 May 2014 08:30:46 +0000 (12:30 +0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 10 Jun 2014 05:44:01 +0000 (07:44 +0200)
commit86946a2d835614050b90bc8e5c82982fe45deff2
treebfe9fbb5dd2a74a3dedb1f5bd8ffedd0363ba158
parent7721a3044234c46cd6f5f899e7467dc9351f3c8d
glib-compat.h: add new thread API emulation on top of pre-2.31 API

Thread API changed in glib-2.31 significantly.  Before that version,
conditionals and mutexes were only allocated dynamically, using
_new()/_free() interface.  in 2.31 and up, they're allocated statically
as regular variables, and old interface is deprecated.

(Note: glib docs says the new interface is available since version
2.32, but it was actually introduced in version 2.31).

Create the new interface using old primitives, by providing non-opaque
definitions of the base types (GCond and GMutex) using GOnces.

Replace #ifdeffery around GCond and GMutex in trace/simple.c and
coroutine-gthread.c too because it does not work anymore with the new
glib-compat.h.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[Use GOnce to support lazy initialization; introduce CompatGMutex
 and CompatGCond.  - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
coroutine-gthread.c
include/glib-compat.h
trace/simple.c