This change introduces a new non-reentrant mutex to WebRTC. It
enables eventual migration to Abseil's mutex.
The mutex types supportable by webrtc::Mutex are
- absl::Mutex
- CriticalSection (Windows only)
- pthread_mutex (POSIX only)
In addition to introducing the mutexes, the CL also changes
PacketBuffer to use the new mutex instead of rtc::CriticalSection.
The method of yielding from critical_section.cc was given a
mini-cleanup and YieldCurrentThread() was added to
rtc_base/synchronization/yield.h/cc.
Additionally, google_benchmark benchmarks for the mutexes were added
(test courtesy of danilchap@), and some results from a pthread/Abseil
shootout were added showing Abseil has the advantage in higher
contention.
Bug: webrtc:11567, webrtc:11634
Change-Id: Iaec324ccb32ec3851bf6db3fd290f5ea5dee4c81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176230
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31443}
I'll hold on to the root OWNER for a bit longer for convenience.
Bug: None
Change-Id: I13303ba726fed612adc74008eeaaeadf9595e084
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170047
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30727}
This is copied from https://chromium-review.googlesource.com/1333877
More info is available at crbug.com/904400.
Bug: webrtc:10093
Change-Id: Ia256b3515b354b501663f0536c2735542474d3c0
Reviewed-on: https://webrtc-review.googlesource.com/c/113422
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25932}
We have to move the content of the 'webrtc/build/' directory up of one level (see crbug.com/611808 for further details).
To avoid a collision with the DEPSed build/ at the top level we are moving all the content of 'webrtc/build/' to different locations (see webrtc:7030 for the suggested locations).
BUG=webrtc:7030
NOTRY=True
Review-Url: https://codereview.webrtc.org/2651913002
Cr-Commit-Position: refs/heads/master@{#16259}
After moving away from the Chromium checkout and the symlinks, we
no longer need to have our own test_runner.py script for Android tests
BUG=webrtc:5006
TBR=ehmaldonado@webrtc.org
Review-Url: https://codereview.webrtc.org/2600193002 .
Cr-Commit-Position: refs/heads/master@{#15801}
Use system Xcode on Mac instead of the hermetic toolchain which
is now the default in Chromium. WebRTC needs the 10.12 SDK to
compile successfully, which is not availble in the hermetic
toolchain Chromium is rolling out to Googlers.
Change log: 1a6cf4da7c..f1e2718a3f
Full diff: 1a6cf4da7c..f1e2718a3f
No dependencies changed.
No update to Clang.
TBR=ehmaldonado@webrtc.org
BUG=webrtc:6700
Review-Url: https://codereview.webrtc.org/2496113002
Cr-Commit-Position: refs/heads/master@{#15057}
There is no clear reason to have them in build_overrides, and
webrtc/build seems to be a better place.
Also, delete build_overrides/webrtc.gni
NOTRY=True
BUG=webrtc:5949
Review-Url: https://codereview.webrtc.org/2309253004
Cr-Commit-Position: refs/heads/master@{#14108}
Reason for revert:
Nope, breaks chromium
Original issue's description:
> Fix inconsistent setting of the rtc_include_unittests flag.
>
> On advice from brettw, se discussion here:
> https://codereview.webrtc.org/2149543002/
>
> The problem was we were setting the flag to both false and true,
> and the the true happened to win out for WebRTC checkouts and
> false for Chromium checkouts. This change should make this
> mechanic more obvious.
>
> This change _should_ have no effect downstream.
>
> Doing tbr to see if we can get the chromium import back into a good state today.
>
> TBR=tommi@webrtc.org
>
> Committed: https://crrev.com/9d34148714773339a4e8396bd28aceb571554d36
> Cr-Commit-Position: refs/heads/master@{#13484}
TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.webrtc.org/2150293002
Cr-Commit-Position: refs/heads/master@{#13486}
On advice from brettw, se discussion here:
https://codereview.webrtc.org/2149543002/
The problem was we were setting the flag to both false and true,
and the the true happened to win out for WebRTC checkouts and
false for Chromium checkouts. This change should make this
mechanic more obvious.
This change _should_ have no effect downstream.
Doing tbr to see if we can get the chromium import back into a good state today.
TBR=tommi@webrtc.org
Review-Url: https://codereview.webrtc.org/2154693002
Cr-Commit-Position: refs/heads/master@{#13484}
Due to https://codereview.chromium.org/1397493004 we're now adding
a build_overrides directory in WebRTC. Thanks to this, we no longer
need to pass --args="build_with_chromium=false" when running GN in
standalone WebRTC.
Change log: c089d37..159828f
Full diff: c089d37..159828f
No dependencies changed.
No update to Clang.
BUG=webrtc:5070,chromium:541791
TBR=tommi@webrtc.org
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal
Review URL: https://codereview.webrtc.org/1403453003 .
Cr-Commit-Position: refs/heads/master@{#10270}