waylandsink: add some error handler for event dispatch
if wl client got last_error, wl_display_dispatch_queue_pending will return -1, may lead to unhandled case, we should quit. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9511>
This commit is contained in:
parent
42758aac2c
commit
9943a6082c
@ -509,8 +509,12 @@ gst_wl_display_thread_run (gpointer data)
|
||||
/* main loop */
|
||||
while (1) {
|
||||
g_rec_mutex_lock (&priv->sync_mutex);
|
||||
while (wl_display_prepare_read_queue (priv->display, priv->queue) != 0)
|
||||
wl_display_dispatch_queue_pending (priv->display, priv->queue);
|
||||
while (wl_display_prepare_read_queue (priv->display, priv->queue) != 0) {
|
||||
if (wl_display_dispatch_queue_pending (priv->display, priv->queue) == -1) {
|
||||
g_rec_mutex_unlock (&priv->sync_mutex);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
g_rec_mutex_unlock (&priv->sync_mutex);
|
||||
wl_display_flush (priv->display);
|
||||
|
||||
@ -526,7 +530,10 @@ gst_wl_display_thread_run (gpointer data)
|
||||
goto error;
|
||||
|
||||
g_rec_mutex_lock (&priv->sync_mutex);
|
||||
wl_display_dispatch_queue_pending (priv->display, priv->queue);
|
||||
if (wl_display_dispatch_queue_pending (priv->display, priv->queue) == -1) {
|
||||
g_rec_mutex_unlock (&priv->sync_mutex);
|
||||
goto error;
|
||||
}
|
||||
g_rec_mutex_unlock (&priv->sync_mutex);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user