• Allison Karlitskaya's avatar
    winxp threads: fix some condition variable races · 541693f4
    Allison Karlitskaya authored
    There are some races in the condition variable emulation code for
    Windows XP with respect to timeouts while waiting.
    
    First, in the event of a timeout, we never remove the waiter from the
    condition variable.  This can cause crashes later.  That problem was
    found by Rodrigo Rivas Costa.
    
    Second, if the waiting thread times out and exits just as we were about
    to call SetEvent() on its waiter event, we could end up trying to access
    the waiter after it was closed/freed.  We need to hold on to the lock a
    little bit longer to ensure that that's not possible.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=666551
    541693f4
Name
Last commit
Last update
build Loading commit data...
debian Loading commit data...
docs Loading commit data...
gio Loading commit data...
glib Loading commit data...
gmodule Loading commit data...
gobject Loading commit data...
gthread Loading commit data...
m4macros Loading commit data...
po Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog.pre-1-2 Loading commit data...
ChangeLog.pre-2-0 Loading commit data...
ChangeLog.pre-2-10 Loading commit data...
ChangeLog.pre-2-12 Loading commit data...
ChangeLog.pre-2-14 Loading commit data...
ChangeLog.pre-2-16 Loading commit data...
ChangeLog.pre-2-18 Loading commit data...
ChangeLog.pre-2-2 Loading commit data...
ChangeLog.pre-2-20 Loading commit data...
ChangeLog.pre-2-4 Loading commit data...
ChangeLog.pre-2-6 Loading commit data...
ChangeLog.pre-2-8 Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
Makefile.am Loading commit data...
Makefile.decl Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-3 Loading commit data...
README.commits Loading commit data...
README.in Loading commit data...
README.win32 Loading commit data...
acglib.m4 Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
config.h.win32.in Loading commit data...
configure.ac Loading commit data...
gio-2.0.pc.in Loading commit data...
gio-unix-2.0.pc.in Loading commit data...
gio-windows-2.0.pc.in Loading commit data...
glib-2.0.pc.in Loading commit data...
glib-gettextize.in Loading commit data...
glib-zip.in Loading commit data...
glib.doap Loading commit data...
gmodule-2.0.pc.in Loading commit data...
gmodule-export-2.0.pc.in Loading commit data...
gmodule-no-export-2.0.pc.in Loading commit data...
gobject-2.0.pc.in Loading commit data...
gthread-2.0.pc.in Loading commit data...
makefile.msc Loading commit data...
mkinstalldirs Loading commit data...
msvc_recommended_pragmas.h Loading commit data...
sanity_check Loading commit data...
win32-fixup.pl Loading commit data...