зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1888181 - updated libwebrtc patch stack
This commit is contained in:
Родитель
7fc8c136d1
Коммит
5ce76e51d9
|
@ -0,0 +1,39 @@
|
|||
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()) {
|
Загрузка…
Ссылка в новой задаче