Add ScopedAllowBaseSyncPrimitivesForTesting to Webrtc.

Chromium requires that all code that waits on a sync primitive be
annotated with ScopedAllowBaseSyncPrimitives(ForTesting). Webrtc
already imports ScopedAllowBaseSyncPrimitives.
ScopedAllowBaseSyncPrimitivesForTesting is equivalent but can only
be used in tests and doesn't required adding a friend declaration to
thread_restrictions.h.

Previously, the code that is annotated with
ScopedAllowBaseSyncPrimitivesForTesting in this CL didn't fail because
it ran on a TaskRunner annotated with the deprecated
WithBaseSyncPrimitives() trait (cf.
https://cs.chromium.org/chromium/src/content/renderer/media/webrtc/task_queue_factory_unittest.cc?l=23&rcl=362f3723ac358d932ea2e3af65512a1243697a31).

Change-Id: Id7cfa2ea108870de86dc887458ae783c807791cc
Bug: chromium:889029
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128823
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27339}
This commit is contained in:
François Doray
2019-03-22 13:01:54 -04:00
committed by Commit Bot
parent 20393ee9b7
commit 8ea977d2fd
2 changed files with 13 additions and 5 deletions

View File

@ -204,8 +204,10 @@ TEST_P(TaskQueueTest, PostALot) {
// So here we post a total of 0xffff+1 messages, which triggers a failure
// case inside of the libevent queue implementation.
queue->PostTask(
ToQueuedTask([&event] { event.Wait(rtc::Event::kForever); }));
queue->PostTask(ToQueuedTask([&event] {
rtc::ScopedAllowBaseSyncPrimitivesForTesting allow_base_sync_primitives;
event.Wait(rtc::Event::kForever);
}));
for (int i = 0; i < kTaskCount; ++i)
queue->PostTask(
ToQueuedTask([&tasks_executed] { ++tasks_executed; },