-
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>
171e0bda