• Sebastian Dröge's avatar
    GSocket: Fix race conditions on Win32 if multiple threads are waiting on... · 799f8dcd
    Sebastian Dröge authored
    GSocket: Fix race conditions on Win32 if multiple threads are waiting on conditions for the same socket
    
    WSAWaitForMultipleEvents() only returns for one of the waiting threads, and
    that one might not even be the one waiting for the condition that changed. As
    such, only let a single thread wait on the event and use a GCond for all other
    threads.
    
    With this it is possible to e.g. have an UDP socket that is written to from
    one thread and read from in another thread on Win32 too. On POSIX systems this
    was working before already.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762283
    799f8dcd
gsocket.c 163 KB