loader/dri3: Use dri3_wait_for_event_locked in loader_dri3_wait_for_msc
authorMichel Dänzer <mdaenzer@redhat.com>
Fri, 5 Jun 2020 16:22:31 +0000 (18:22 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 29 Jun 2020 17:05:52 +0000 (17:05 +0000)
commit7c226116c6c0793d6d9a7dec52ac7cf54b82b57f
tree192311e2a4795b1fe138d2915e23e4f7f6fa583a
parentee77951714ff4373261befde6e84f592cc1c769c
loader/dri3: Use dri3_wait_for_event_locked in loader_dri3_wait_for_msc

Before, if one thread ended up waiting in dri3_wait_for_event_locked
and another one in loader_dri3_wait_for_msc at the same time, one thread
could end up processing an event the other thread was waiting for, which
could result in the latter thread waiting longer than necessary
(possibly indefinitely).

Noticed by inspection.

v2:
* Drop xcb_flush call from loader_dri3_wait_for_msc in favour of the one
  in dri3_wait_for_event_locked (Kenneth Graunke)

Fixes: 7b0e8264dd21 "loader/dri3: Try to make sure we only process our
                     own NotifyMSC events"

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5368>
src/loader/loader_dri3_helper.c