mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-11-04 13:29:51 -05:00
client: broadcast the right pthread_cond variable
In previous commit we removed unused variables. One of them was pthread_cond_t that was formerly used when reading from display, but later was (erroneously) made unused. This patch fixes this error and is a fix for the failing test introduced few patches ago (tests: test if thread can block on error) Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
parent
0cb9862c93
commit
574b710ef8
1 changed files with 16 additions and 0 deletions
|
|
@ -127,6 +127,12 @@ display_fatal_error(struct wl_display *display, int error)
|
||||||
error = EFAULT;
|
error = EFAULT;
|
||||||
|
|
||||||
display->last_error = error;
|
display->last_error = error;
|
||||||
|
|
||||||
|
pthread_cond_broadcast(&display->reader_cond);
|
||||||
|
/* prevent from indefinite looping in read_events()
|
||||||
|
* (when calling pthread_cond_wait under condition
|
||||||
|
* display->read_serial == serial) */
|
||||||
|
++display->read_serial;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -175,6 +181,16 @@ display_protocol_error(struct wl_display *display, uint32_t code,
|
||||||
display->protocol_error.id = id;
|
display->protocol_error.id = id;
|
||||||
display->protocol_error.interface = intf;
|
display->protocol_error.interface = intf;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* here it is not necessary to broadcast reader's cond like in
|
||||||
|
* display_fatal_error, because this function is called from
|
||||||
|
* an event handler and that means that read_events() is done
|
||||||
|
* and woke up all threads. Since wl_display_prepare_read()
|
||||||
|
* fails when there are events in the queue, no threads
|
||||||
|
* can sleep in read_events() during dispatching
|
||||||
|
* (and therefore during calling this function), so this is safe.
|
||||||
|
*/
|
||||||
|
|
||||||
pthread_mutex_unlock(&display->mutex);
|
pthread_mutex_unlock(&display->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue