static void *VoutDisplayEventKeyDispatch(void *data)
{
- vout_display_t *vd = data;
- vout_display_owner_sys_t *osys = vd->owner.sys;
+ vout_display_owner_sys_t *osys = data;
for (;;) {
block_t *event = block_FifoGet(osys->event.fifo);
if (!osys->event.fifo)
return;
if (vlc_clone(&osys->event.thread, VoutDisplayEventKeyDispatch,
- vd, VLC_THREAD_PRIORITY_LOW)) {
+ osys, VLC_THREAD_PRIORITY_LOW)) {
block_FifoRelease(osys->event.fifo);
osys->event.fifo = NULL;
return;
vout_display_Delete(vd);
if (osys->event.fifo) {
vlc_cancel(osys->event.thread);
+ vlc_join(osys->event.thread, NULL);
block_FifoRelease(osys->event.fifo);
}
vlc_mutex_destroy(&osys->lock);