Fix race in rendering final manifest

This commit is contained in:
Rafael Caricio 2021-05-14 18:48:12 +02:00
parent 798fff1772
commit e76ec06420
Signed by: rafaelcaricio
GPG key ID: 3C86DBCE8E93C947

View file

@ -612,19 +612,21 @@ impl ElementImpl for FlexHlsSink {
match transition {
gst::StateChange::PausedToReady => {
// Turning down
let mut state = self.state.lock().unwrap();
let write_final = match &mut *state {
State::Stopped => false,
State::Started {
playlist,
playlist_render_state,
..
} => {
if *playlist_render_state == PlaylistRenderState::Started {
playlist.end_list = true;
true
} else {
false
let write_final = {
let mut state = self.state.lock().unwrap();
match &mut *state {
State::Stopped => false,
State::Started {
playlist,
playlist_render_state,
..
} => {
if *playlist_render_state == PlaylistRenderState::Started {
playlist.end_list = true;
true
} else {
false
}
}
}
};