Chromium (base) and Abseil both don't provide/use recursive mutexes, so it'd be consistent not to use them. We have very few uses, so eliminating them would allow us to be consistent with the rest of Chromium and eventually even adopt base::Lock.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0c0a67fbb00cf79456cd99b102b6319197d1b22a commit 0c0a67fbb00cf79456cd99b102b6319197d1b22a Author: Jeremy Roman <jbroman@chromium.org> Date: Mon Sep 03 17:27:50 2018 WTF: Remove WTF::MutexBase::Locked. It has been superseded by AssertAcquired. Bug: 856641 Change-Id: Iebb6ea251dc4102ec3cb5b2a46f80afeedeb462c Reviewed-on: https://chromium-review.googlesource.com/1201349 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#588416} [modify] https://crrev.com/0c0a67fbb00cf79456cd99b102b6319197d1b22a/third_party/blink/renderer/platform/heap/persistent_node.cc [modify] https://crrev.com/0c0a67fbb00cf79456cd99b102b6319197d1b22a/third_party/blink/renderer/platform/heap/persistent_node.h [modify] https://crrev.com/0c0a67fbb00cf79456cd99b102b6319197d1b22a/third_party/blink/renderer/platform/wtf/threading_primitives.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/030ab478578929d75e79fad6f102d9d9eda107f6 commit 030ab478578929d75e79fad6f102d9d9eda107f6 Author: Jeremy Roman <jbroman@chromium.org> Date: Mon Sep 03 18:46:52 2018 WTF: Simplify ThreadCondition interface and make it more similar to base::ConditionVariable. There are no uses of TimedWait in Blink, so it is removed altogether. Bug: 856641 Change-Id: I3fa1dad9374a2600decddad18f80bf47f00b7b78 Reviewed-on: https://chromium-review.googlesource.com/1199933 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#588425} [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/bindings/core/v8/script_streamer.cc [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/core/inspector/inspector_task_runner.cc [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/platform/heap/heap_test.cc [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/platform/wtf/threading_primitives.h [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/platform/wtf/threading_pthreads.cc [modify] https://crrev.com/030ab478578929d75e79fad6f102d9d9eda107f6/third_party/blink/renderer/platform/wtf/threading_win.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e41ffb6c1cf74f0766bbc516b78e456893f000f4 commit e41ffb6c1cf74f0766bbc516b78e456893f000f4 Author: Jeremy Roman <jbroman@chromium.org> Date: Fri Sep 07 13:41:50 2018 WTF: CHECK if a mutex is recursively acquired. This is a final attempt to flush out any recursive acquisition before support is totally removed for WTF::RecursiveMutex. For pthreads, this requires maintaining the recursion_count_ variable even in non-DCHECK builds. This is still quite cheap, and is temporary in any case. Bug: 856641 Change-Id: I2b550fd58e8c4cf6293ad7628dd49aa366b41ae9 Reviewed-on: https://chromium-review.googlesource.com/1212453 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#589504} [modify] https://crrev.com/e41ffb6c1cf74f0766bbc516b78e456893f000f4/third_party/blink/renderer/platform/wtf/threading_primitives.h [modify] https://crrev.com/e41ffb6c1cf74f0766bbc516b78e456893f000f4/third_party/blink/renderer/platform/wtf/threading_pthreads.cc [modify] https://crrev.com/e41ffb6c1cf74f0766bbc516b78e456893f000f4/third_party/blink/renderer/platform/wtf/threading_win.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c6a1376160d77a9494e686b83d8643d5bc901dbe commit c6a1376160d77a9494e686b83d8643d5bc901dbe Author: Jeremy Roman <jbroman@chromium.org> Date: Thu Sep 13 20:11:28 2018 Revert "WTF: CHECK if a mutex is recursively acquired." This reverts commit e41ffb6c1cf74f0766bbc516b78e456893f000f4. Reason for revert: WebAudio can still do recursive acquisition due to finalizing objects during an allocation in which the lock is held. See crbug.com/882314 Original change's description: > WTF: CHECK if a mutex is recursively acquired. > > This is a final attempt to flush out any recursive acquisition > before support is totally removed for WTF::RecursiveMutex. > > For pthreads, this requires maintaining the recursion_count_ > variable even in non-DCHECK builds. This is still quite cheap, > and is temporary in any case. > > Bug: 856641 > Change-Id: I2b550fd58e8c4cf6293ad7628dd49aa366b41ae9 > Reviewed-on: https://chromium-review.googlesource.com/1212453 > Reviewed-by: Kentaro Hara <haraken@chromium.org> > Commit-Queue: Jeremy Roman <jbroman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#589504} TBR=jbroman@chromium.org,yutak@chromium.org,haraken@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 856641,882314 Change-Id: I1e2732ee0c810d5fed73ba29874088abaeed2d59 Reviewed-on: https://chromium-review.googlesource.com/1225297 Reviewed-by: Jeremy Roman <jbroman@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#591130} [modify] https://crrev.com/c6a1376160d77a9494e686b83d8643d5bc901dbe/third_party/blink/renderer/platform/wtf/threading_primitives.h [modify] https://crrev.com/c6a1376160d77a9494e686b83d8643d5bc901dbe/third_party/blink/renderer/platform/wtf/threading_pthreads.cc [modify] https://crrev.com/c6a1376160d77a9494e686b83d8643d5bc901dbe/third_party/blink/renderer/platform/wtf/threading_win.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/39b7746ed3a931eba4ad4bb224ee8602e797dc5d commit 39b7746ed3a931eba4ad4bb224ee8602e797dc5d Author: Jeremy Roman <jbroman@chromium.org> Date: Fri Nov 02 02:55:32 2018 webaudio: Don't take new references to AudioHandler in order to remove it from collections. In addition to being somewhat silly and inefficient, this also made it impossible to check whether these things need to be removed on destruction (because it would add a reference to a doomed object). Bug: 856641 Change-Id: Ia017304cddbc417a5fce5350de6726471aff930f Reviewed-on: https://chromium-review.googlesource.com/c/1312571 Reviewed-by: Hongchan Choi <hongchan@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#604816} [modify] https://crrev.com/39b7746ed3a931eba4ad4bb224ee8602e797dc5d/third_party/blink/renderer/modules/webaudio/deferred_task_handler.cc [modify] https://crrev.com/39b7746ed3a931eba4ad4bb224ee8602e797dc5d/third_party/blink/renderer/modules/webaudio/deferred_task_handler.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f7161031dbfd3f0a5058d636426b7a261d020a53 commit f7161031dbfd3f0a5058d636426b7a261d020a53 Author: Jeremy Roman <jbroman@chromium.org> Date: Tue Nov 06 19:32:14 2018 webaudio: Replace the UntracedMember<AudioNode> in AudioHandler with a WeakPersistent. Bug: 856641 Change-Id: Id1f5bdff7cbf8cf6fa62adeadc2d07e819755a5c Reviewed-on: https://chromium-review.googlesource.com/c/1318687 Reviewed-by: Hongchan Choi <hongchan@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#605787} [modify] https://crrev.com/f7161031dbfd3f0a5058d636426b7a261d020a53/third_party/blink/renderer/modules/webaudio/audio_node.cc [modify] https://crrev.com/f7161031dbfd3f0a5058d636426b7a261d020a53/third_party/blink/renderer/modules/webaudio/audio_node.h