mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-02-06 04:06:19 -05:00
wl_display_read_events() can make a thread wait until some other thread ends reading. Normally it wakes up all threads after the reading is done. But there's a place when it does not get to waking up the threads - when an error occurs. This test reveals bug that can block programs. If a thread is waiting in wl_display_read_events() and another thread calls wl_display_read_events and the reading fails, then the sleeping thread is not woken up. This is because display_handle_error is using old pthread_cond instead of new display->reader_cond, that was added along with wl_display_read_events(). Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> |
||
|---|---|---|
| .. | ||
| array-test.c | ||
| client-test.c | ||
| connection-test.c | ||
| display-test.c | ||
| event-loop-test.c | ||
| exec-fd-leak-checker.c | ||
| fixed-benchmark.c | ||
| fixed-test.c | ||
| list-test.c | ||
| map-test.c | ||
| message-test.c | ||
| os-wrappers-test.c | ||
| queue-test.c | ||
| resources-test.c | ||
| sanity-test.c | ||
| signal-test.c | ||
| socket-test.c | ||
| test-compositor.c | ||
| test-compositor.h | ||
| test-helpers.c | ||
| test-runner.c | ||
| test-runner.h | ||