mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
f3436e4ba7
Differential Revision: https://phabricator.services.mozilla.com/D226966
40 lines
1.6 KiB
Diff
40 lines
1.6 KiB
Diff
From: Andreas Pehrson <apehrson@mozilla.com>
|
|
Date: Wed, 10 Apr 2024 21:54:00 +0000
|
|
Subject: Bug 1888181 - (fix-52fec7d3) Limit scope of race checker in
|
|
VideoCaptureModuleV4L2::StartCapture. r=mjf
|
|
|
|
TSAN detects a race between destroying the scoped race checker in StartCapture
|
|
and creating the scoped race checker in CaptureProcess, because once the capture
|
|
thread has been created (and given its run function) there is no synchronization
|
|
before the run function starts to run.
|
|
|
|
This patch avoids the race by destroying the StartCapture scoped race checker
|
|
before creating the capture thread.
|
|
|
|
Differential Revision: https://phabricator.services.mozilla.com/D207203
|
|
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/b046a1446cee5ab485d4868b3ca9784b16b2d02f
|
|
---
|
|
modules/video_capture/linux/video_capture_v4l2.cc | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/modules/video_capture/linux/video_capture_v4l2.cc b/modules/video_capture/linux/video_capture_v4l2.cc
|
|
index 6d8a5e463f..db2450a2c7 100644
|
|
--- a/modules/video_capture/linux/video_capture_v4l2.cc
|
|
+++ b/modules/video_capture/linux/video_capture_v4l2.cc
|
|
@@ -129,6 +129,7 @@ int32_t VideoCaptureModuleV4L2::StartCapture(
|
|
}
|
|
}
|
|
|
|
+ {
|
|
// We don't want members above to be guarded by capture_checker_ as
|
|
// it's meant to be for members that are accessed on the API thread
|
|
// only when we are not capturing. The code above can be called many
|
|
@@ -298,6 +299,7 @@ int32_t VideoCaptureModuleV4L2::StartCapture(
|
|
_requestedCapability = capability;
|
|
_captureStarted = true;
|
|
_streaming = true;
|
|
+ }
|
|
|
|
// start capture thread;
|
|
if (_captureThread.empty()) {
|