From: Steinar H. Gunderson Date: Fri, 23 Mar 2018 15:33:11 +0000 (+0100) Subject: Fix a thread race in QuickSyncEncoder. Found by GCC TSan. X-Git-Tag: 1.7.1~9 X-Git-Url: https://git.sesse.net/?p=nageru;a=commitdiff_plain;h=52067673f1649e995881331b111f891e1a83e286 Fix a thread race in QuickSyncEncoder. Found by GCC TSan. --- 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;