Files
SDL/src
David Gow 25f9e32b0e wayland: Don't let multiple threads dispatch wayland events at once
wl_display_dispatch() will block if there are no events available, and
while we try to avoid this by using SDL_IOReady() to verify there are
events before calling it, there is a race condition between
SDL_IOReady() and wl_display_dispatch() if multiple threads are
involved.

This is made more likely by the fact that SDL_GL_SwapWindow() calls
wl_display_dispatch() if vsync is enabled, in order to wait for frame
events. Therefore any program which pumps events on a different thread
from SDL_GL_SwapWindow() could end up blocking in one or other of them
until another event arrives.

This change fixes this by wrapping wl_display_dispatch() in a new mutex,
which ensures only one thread can compete for wayland events at a time,
and hence the SDL_IOReady() check should successfully prevent either
from blocking.
2021-10-02 11:03:20 -04:00
..
2021-09-16 17:33:52 -07:00
2021-09-21 09:57:10 -07:00
2021-09-22 11:53:46 -07:00
2021-10-01 16:27:59 -07:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-03-08 09:07:12 -08:00
2021-03-08 09:07:12 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00
2021-01-02 10:25:38 -08:00