splitmux: Recheck state after unlocking mutex.

After dropping the splitmux lock, re-check the state,
don't just fall through and sleep unconditionally,
as we may have already missed the wakeup.

https://bugzilla.gnome.org/show_bug.cgi?id=769514
This commit is contained in:
Jan Schmidt 2016-08-08 00:56:38 +10:00
parent 69df65fabe
commit 89af379ff0

View file

@ -1233,6 +1233,9 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
GST_SPLITMUX_UNLOCK (splitmux);
gst_pad_send_event (ctx->sinkpad, event);
GST_SPLITMUX_LOCK (splitmux);
/* state may have changed while we were unlocked. Loop again if so */
if (splitmux->state != SPLITMUX_STATE_ENDING_FILE)
break;
/* fallthrough */
}
case SPLITMUX_STATE_START_NEXT_FRAGMENT: