• Michael Tokarev's avatar
    glib-compat.h: add new thread API emulation on top of pre-2.31 API · 86946a2d
    Michael Tokarev authored
    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
    Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    [Use GOnce to support lazy initialization; introduce CompatGMutex
     and CompatGCond.  - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
coroutine-gthread.c 5.31 KB