- if (draw->special_event) {
- while ((int32_t) (msc_serial - draw->recv_msc_serial) > 0) {
- if (!dri3_wait_for_event_locked(draw)) {
- mtx_unlock(&draw->mtx);
- return false;
- }
+ do {
+ ev = xcb_wait_for_special_event(draw->conn, draw->special_event);
+ if (!ev) {
+ mtx_unlock(&draw->mtx);
+ return false;