We already cherry-picked this when we vendored f30c044cf9. Upstream commit: https://webrtc.googlesource.com/src/+/995688c8e85b520d50961486abbe0cc03eae9558 Revert "more p2p cleanups" This reverts commit f30c044cf9bd06f91017c171d98690094ce6d88b. Reason for revert: breaks roll to chromium: https://ci.chromium.org/ui/p/chromium/builders/try/mac_chromium_compile_dbg_ng/2290104/overview Original change's description: > more p2p cleanups > > Move test code from p2p/base and rtc_base/ into p2p/test/ > This p2p/base much less crowded and > clarifies that the rtc_base/nat* is in fact only test code. > > BUG=webrtc:0 > > Change-Id: I4d14fae24cb0eff6783962f4b4483b560367ca5d > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/378900 > Commit-Queue: Jonas Oreland <jonaso@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Auto-Submit: Jonas Oreland <jonaso@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#43995} Bug: webrtc:0 Change-Id: I6c79fa85f53fdb9a1dacbe38911771f9a4289c76 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/379040 Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Ilya Nikolaevskiy <ilnik@webrtc.org> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43999} Differential Revision: https://phabricator.services.mozilla.com/D244009
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()) {
|