From 52067673f1649e995881331b111f891e1a83e286 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 23 Mar 2018 16:33:11 +0100 Subject: [PATCH] Fix a thread race in QuickSyncEncoder. Found by GCC TSan. --- quicksync_encoder.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/quicksync_encoder.cpp b/quicksync_encoder.cpp index 67e9668..8761d56 100644 --- a/quicksync_encoder.cpp +++ b/quicksync_encoder.cpp @@ -1875,8 +1875,11 @@ void QuickSyncEncoderImpl::encode_thread_func() if (frame_type == FRAME_IDR) { // Release any reference frames from the previous GOP. - for (const ReferenceFrame &frame : reference_frames) { - release_gl_surface(frame.display_number); + { + unique_lock lock(storage_task_queue_mutex); + for (const ReferenceFrame &frame : reference_frames) { + release_gl_surface(frame.display_number); + } } reference_frames.clear(); current_ref_frame_num = 0; -- 2.39.2