Move to_queued_task.h and pending_task_safety_flag.h into public API

Bug: b/235812579
Change-Id: I9fa3dc4a65044df8b44fff4e9bfeac7233fa381c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266080
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37248}
This commit is contained in:
Artem Titov 2022-06-16 21:27:45 +02:00 committed by WebRTC LUCI CQ
parent 1ab61886a9
commit c374d11fac
150 changed files with 560 additions and 512 deletions

View file

@ -555,6 +555,8 @@ if (rtc_include_tests && !build_with_chromium) {
"api/audio/test:audio_api_unittests",
"api/audio_codecs/test:audio_codecs_api_unittests",
"api/numerics:numerics_unittests",
"api/task_queue:pending_task_safety_flag_unittests",
"api/task_queue:to_queued_task_unittests",
"api/transport:stun_unittest",
"api/video/test:rtc_api_video_unittests",
"api/video_codecs/test:video_codecs_api_unittests",
@ -574,9 +576,7 @@ if (rtc_include_tests && !build_with_chromium) {
"rtc_base:weak_ptr_unittests",
"rtc_base/experiments:experiments_unittests",
"rtc_base/system:file_wrapper_unittests",
"rtc_base/task_utils:pending_task_safety_flag_unittests",
"rtc_base/task_utils:repeating_task_unittests",
"rtc_base/task_utils:to_queued_task_unittests",
"rtc_base/time:timestamp_extrapolator_unittests",
"rtc_base/units:units_unittests",
"sdk:sdk_tests",

View file

@ -18,12 +18,12 @@ rtc_library("fake_metronome") {
"..:metronome",
"../..:priority",
"../..:sequence_checker",
"../../../api/task_queue:to_queued_task",
"../../../rtc_base:macromagic",
"../../../rtc_base:rtc_event",
"../../../rtc_base:rtc_task_queue",
"../../../rtc_base/synchronization:mutex",
"../../../rtc_base/task_utils:repeating_task",
"../../../rtc_base/task_utils:to_queued_task",
"../../task_queue",
"../../units:time_delta",
]

View file

@ -13,10 +13,10 @@
#include "api/priority.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/task_queue/to_queued_task.h"
#include "api/units/time_delta.h"
#include "rtc_base/event.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc::test {

View file

@ -61,10 +61,10 @@ rtc_library("task_queue_test") {
} else {
deps = [
":task_queue",
"../../api/task_queue:to_queued_task",
"../../rtc_base:refcount",
"../../rtc_base:rtc_event",
"../../rtc_base:timeutils",
"../../rtc_base/task_utils:to_queued_task",
"../../test:test_support",
]
absl_deps = [
@ -97,6 +97,29 @@ rtc_library("default_task_queue_factory") {
}
}
rtc_source_set("to_queued_task") {
visibility = [ "*" ]
sources = [ "to_queued_task.h" ]
deps = [
":task_queue",
"../../api/task_queue:pending_task_safety_flag",
]
}
rtc_library("pending_task_safety_flag") {
sources = [
"pending_task_safety_flag.cc",
"pending_task_safety_flag.h",
]
deps = [
"../../api:refcountedbase",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../rtc_base:checks",
"../../rtc_base/system:no_unique_address",
]
}
if (rtc_include_tests) {
rtc_library("task_queue_default_factory_unittests") {
testonly = true
@ -107,4 +130,29 @@ if (rtc_include_tests) {
"../../test:test_support",
]
}
rtc_library("to_queued_task_unittests") {
testonly = true
sources = [ "to_queued_task_unittest.cc" ]
deps = [
":to_queued_task",
"../../api/task_queue",
"../../test:test_support",
]
absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
rtc_library("pending_task_safety_flag_unittests") {
testonly = true
sources = [ "pending_task_safety_flag_unittest.cc" ]
deps = [
":pending_task_safety_flag",
":to_queued_task",
"../../rtc_base:logging",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_task_queue",
"../../rtc_base:task_queue_for_test",
"../../test:test_support",
]
}
}

View file

@ -7,4 +7,8 @@ specific_include_rules = {
"task_queue_test\.h": [
"+test/gtest.h",
],
"pending_task_safety_flag.h": [
"+rtc_base/checks.h",
"+rtc_base/system/no_unique_address.h",
],
}

View file

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "api/task_queue/pending_task_safety_flag.h"
namespace webrtc {

View file

@ -0,0 +1,160 @@
/*
* Copyright 2020 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef API_TASK_QUEUE_PENDING_TASK_SAFETY_FLAG_H_
#define API_TASK_QUEUE_PENDING_TASK_SAFETY_FLAG_H_
#include <utility>
#include "api/ref_counted_base.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "rtc_base/checks.h"
#include "rtc_base/system/no_unique_address.h"
namespace webrtc {
// The PendingTaskSafetyFlag and the ScopedTaskSafety are designed to address
// the issue where you have a task to be executed later that has references,
// but cannot guarantee that the referenced object is alive when the task is
// executed.
// This mechanism can be used with tasks that are created and destroyed
// on a single thread / task queue, and with tasks posted to the same
// thread/task queue, but tasks can be posted from any thread/TQ.
// Typical usage:
// When posting a task, post a copy (capture by-value in a lambda) of the flag
// reference and before performing the work, check the `alive()` state. Abort if
// alive() returns `false`:
//
// class ExampleClass {
// ....
// my_task_queue_->PostTask(ToQueuedTask(
// [safety = pending_task_safety_flag_, this]() {
// // Now running on the main thread.
// if (!safety->alive())
// return;
// MyMethod();
// }));
// ....
// ~ExampleClass() {
// pending_task_safety_flag_->SetNotAlive();
// }
// scoped_refptr<PendingTaskSafetyFlag> pending_task_safety_flag_
// = PendingTaskSafetyFlag::Create();
// }
//
// ToQueuedTask has an overload that makes this check automatic:
//
// my_task_queue_->PostTask(ToQueuedTask(pending_task_safety_flag_,
// [this]() { MyMethod(); }));
//
class PendingTaskSafetyFlag final
: public rtc::RefCountedNonVirtual<PendingTaskSafetyFlag> {
public:
static rtc::scoped_refptr<PendingTaskSafetyFlag> Create();
// Creates a flag, but with its SequenceChecker initially detached. Hence, it
// may be created on a different thread than the flag will be used on.
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateDetached();
// Same as `CreateDetached()` except the initial state of the returned flag
// will be `!alive()`.
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateDetachedInactive();
~PendingTaskSafetyFlag() = default;
void SetNotAlive();
// The SetAlive method is intended to support Start/Stop/Restart usecases.
// When a class has called SetNotAlive on a flag used for posted tasks, and
// decides it wants to post new tasks and have them run, there are two
// reasonable ways to do that:
//
// (i) Use the below SetAlive method. One subtlety is that any task posted
// prior to SetNotAlive, and still in the queue, is resurrected and will
// run.
//
// (ii) Create a fresh flag, and just drop the reference to the old one. This
// avoids the above problem, and ensures that tasks poster prior to
// SetNotAlive stay cancelled. Instead, there's a potential data race on
// the flag pointer itself. Some synchronization is required between the
// thread overwriting the flag pointer, and the threads that want to post
// tasks and therefore read that same pointer.
void SetAlive();
bool alive() const;
protected:
explicit PendingTaskSafetyFlag(bool alive) : alive_(alive) {}
private:
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateInternal(bool alive);
bool alive_ = true;
RTC_NO_UNIQUE_ADDRESS SequenceChecker main_sequence_;
};
// The ScopedTaskSafety makes using PendingTaskSafetyFlag very simple.
// It does automatic PTSF creation and signalling of destruction when the
// ScopedTaskSafety instance goes out of scope.
//
// ToQueuedTask has an overload that takes a ScopedTaskSafety too, so there
// is no need to explicitly call the "flag" method.
//
// Example usage:
//
// my_task_queue->PostTask(ToQueuedTask(scoped_task_safety,
// [this]() {
// // task goes here
// }
//
// This should be used by the class that wants tasks dropped after destruction.
// The requirement is that the instance has to be constructed and destructed on
// the same thread as the potentially dropped tasks would be running on.
class ScopedTaskSafety final {
public:
ScopedTaskSafety() = default;
explicit ScopedTaskSafety(rtc::scoped_refptr<PendingTaskSafetyFlag> flag)
: flag_(std::move(flag)) {}
~ScopedTaskSafety() { flag_->SetNotAlive(); }
// Returns a new reference to the safety flag.
rtc::scoped_refptr<PendingTaskSafetyFlag> flag() const { return flag_; }
// Marks the current flag as not-alive and attaches to a new one.
void reset(rtc::scoped_refptr<PendingTaskSafetyFlag> new_flag =
PendingTaskSafetyFlag::Create()) {
flag_->SetNotAlive();
flag_ = std::move(new_flag);
}
private:
rtc::scoped_refptr<PendingTaskSafetyFlag> flag_ =
PendingTaskSafetyFlag::Create();
};
// Like ScopedTaskSafety, but allows construction on a different thread than
// where the flag will be used.
class ScopedTaskSafetyDetached final {
public:
ScopedTaskSafetyDetached() = default;
~ScopedTaskSafetyDetached() { flag_->SetNotAlive(); }
// Returns a new reference to the safety flag.
rtc::scoped_refptr<PendingTaskSafetyFlag> flag() const { return flag_; }
private:
rtc::scoped_refptr<PendingTaskSafetyFlag> flag_ =
PendingTaskSafetyFlag::CreateDetached();
};
} // namespace webrtc
#endif // API_TASK_QUEUE_PENDING_TASK_SAFETY_FLAG_H_

View file

@ -8,14 +8,14 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include <memory>
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/event.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "test/gmock.h"
#include "test/gtest.h"
@ -120,9 +120,7 @@ TEST(PendingTaskSafetyFlagTest, PendingTaskDropped) {
RTC_DCHECK(tq_main_);
*stuff_done_ = false;
}
~Owner() {
RTC_DCHECK(tq_main_->IsCurrent());
}
~Owner() { RTC_DCHECK(tq_main_->IsCurrent()); }
void DoStuff() {
RTC_DCHECK(!tq_main_->IsCurrent());

View file

@ -11,9 +11,9 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/event.h"
#include "rtc_base/ref_counter.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
namespace webrtc {

View file

@ -0,0 +1,111 @@
/*
* Copyright 2019 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef API_TASK_QUEUE_TO_QUEUED_TASK_H_
#define API_TASK_QUEUE_TO_QUEUED_TASK_H_
#include <memory>
#include <type_traits>
#include <utility>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/queued_task.h"
namespace webrtc {
namespace webrtc_new_closure_impl {
// Simple implementation of QueuedTask for use with lambdas.
template <typename Closure>
class ClosureTask : public QueuedTask {
public:
explicit ClosureTask(Closure&& closure)
: closure_(std::forward<Closure>(closure)) {}
private:
bool Run() override {
closure_();
return true;
}
typename std::decay<Closure>::type closure_;
};
template <typename Closure>
class SafetyClosureTask : public QueuedTask {
public:
explicit SafetyClosureTask(rtc::scoped_refptr<PendingTaskSafetyFlag> safety,
Closure&& closure)
: closure_(std::forward<Closure>(closure)),
safety_flag_(std::move(safety)) {}
private:
bool Run() override {
if (safety_flag_->alive())
closure_();
return true;
}
typename std::decay<Closure>::type closure_;
rtc::scoped_refptr<PendingTaskSafetyFlag> safety_flag_;
};
// Extends ClosureTask to also allow specifying cleanup code.
// This is useful when using lambdas if guaranteeing cleanup, even if a task
// was dropped (queue is too full), is required.
template <typename Closure, typename Cleanup>
class ClosureTaskWithCleanup : public ClosureTask<Closure> {
public:
ClosureTaskWithCleanup(Closure&& closure, Cleanup&& cleanup)
: ClosureTask<Closure>(std::forward<Closure>(closure)),
cleanup_(std::forward<Cleanup>(cleanup)) {}
~ClosureTaskWithCleanup() override { cleanup_(); }
private:
typename std::decay<Cleanup>::type cleanup_;
};
} // namespace webrtc_new_closure_impl
// Convenience function to construct closures that can be passed directly
// to methods that support std::unique_ptr<QueuedTask> but not template
// based parameters.
template <typename Closure>
std::unique_ptr<QueuedTask> ToQueuedTask(Closure&& closure) {
return std::make_unique<webrtc_new_closure_impl::ClosureTask<Closure>>(
std::forward<Closure>(closure));
}
template <typename Closure>
std::unique_ptr<QueuedTask> ToQueuedTask(
rtc::scoped_refptr<PendingTaskSafetyFlag> safety,
Closure&& closure) {
return std::make_unique<webrtc_new_closure_impl::SafetyClosureTask<Closure>>(
std::move(safety), std::forward<Closure>(closure));
}
template <typename Closure>
std::unique_ptr<QueuedTask> ToQueuedTask(const ScopedTaskSafety& safety,
Closure&& closure) {
return ToQueuedTask(safety.flag(), std::forward<Closure>(closure));
}
template <typename Closure,
typename Cleanup,
typename std::enable_if<!std::is_same<
typename std::remove_const<
typename std::remove_reference<Closure>::type>::type,
ScopedTaskSafety>::value>::type* = nullptr>
std::unique_ptr<QueuedTask> ToQueuedTask(Closure&& closure, Cleanup&& cleanup) {
return std::make_unique<
webrtc_new_closure_impl::ClosureTaskWithCleanup<Closure, Cleanup>>(
std::forward<Closure>(closure), std::forward<Cleanup>(cleanup));
}
} // namespace webrtc
#endif // API_TASK_QUEUE_TO_QUEUED_TASK_H_

View file

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "rtc_base/task_utils/to_queued_task.h"
#include "api/task_queue/to_queued_task.h"
#include <memory>

View file

@ -61,6 +61,8 @@ rtc_library("audio") {
"../api/neteq:neteq_api",
"../api/rtc_event_log",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport/rtp:rtp_source",
"../call:audio_sender_interface",
"../call:bitrate_allocator",
@ -105,8 +107,6 @@ rtc_library("audio") {
"../rtc_base/experiments:field_trial_parser",
"../rtc_base/synchronization:mutex",
"../rtc_base/system:no_unique_address",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../system_wrappers",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",

View file

@ -21,7 +21,9 @@
#include "api/frame_transformer_interface.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "audio/audio_level.h"
#include "audio/channel_receive_frame_transformer_delegate.h"
#include "audio/channel_send.h"
@ -46,8 +48,6 @@
#include "rtc_base/race_checker.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
#include "system_wrappers/include/metrics.h"

View file

@ -12,8 +12,8 @@
#include <utility>
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/buffer.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {
namespace {

View file

@ -303,6 +303,7 @@ rtc_library("call") {
"../api:simulated_network_api",
"../api:transport_api",
"../api/rtc_event_log",
"../api/task_queue:pending_task_safety_flag",
"../api/transport:network_control",
"../api/units:time_delta",
"../api/video_codecs:video_codecs_api",
@ -331,7 +332,6 @@ rtc_library("call") {
"../rtc_base/experiments:field_trial_parser",
"../rtc_base/network:sent_packet",
"../rtc_base/system:no_unique_address",
"../rtc_base/task_utils:pending_task_safety_flag",
"../system_wrappers",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
@ -557,6 +557,7 @@ if (rtc_include_tests) {
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/task_queue:pending_task_safety_flag",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:video_bitrate_allocation",
"../api/video_codecs:video_codecs_api",
@ -579,7 +580,6 @@ if (rtc_include_tests) {
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:repeating_task",
"../system_wrappers",
"../system_wrappers:metrics",

View file

@ -39,6 +39,7 @@ rtc_library("resource_adaptation") {
"../../api:sequence_checker",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
"../../api/task_queue:to_queued_task",
"../../api/video:video_adaptation",
"../../api/video:video_frame",
"../../api/video:video_stream_encoder",
@ -54,7 +55,6 @@ rtc_library("resource_adaptation") {
"../../rtc_base/experiments:balanced_degradation_settings",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:to_queued_task",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
@ -121,8 +121,8 @@ if (rtc_include_tests) {
"../../api:sequence_checker",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
"../../api/task_queue:to_queued_task",
"../../api/video:video_stream_encoder",
"../../rtc_base/task_utils:to_queued_task",
"../../test:test_support",
]
absl_deps = [

View file

@ -17,11 +17,11 @@
#include "absl/algorithm/container.h"
#include "absl/strings/string_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/to_queued_task.h"
#include "api/video/video_adaptation_counters.h"
#include "call/adaptation/video_stream_adapter.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {

View file

@ -25,6 +25,7 @@
#include "absl/types/optional.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/network_control.h"
#include "audio/audio_receive_stream.h"
#include "audio/audio_send_stream.h"
@ -56,7 +57,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread_annotations.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/trace_event.h"

View file

@ -16,6 +16,7 @@
#include "absl/strings/string_view.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/test/simulated_network.h"
#include "api/video/builtin_video_bitrate_allocator_factory.h"
@ -34,7 +35,6 @@
#include "rtc_base/checks.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/metrics.h"

View file

@ -25,6 +25,7 @@
#include "api/fec_controller.h"
#include "api/media_types.h"
#include "api/rtp_headers.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/test/simulated_network.h"
#include "api/video_codecs/video_encoder_config.h"
#include "call/audio_receive_stream.h"
@ -40,7 +41,6 @@
#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/network/sent_packet.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {

View file

@ -64,6 +64,8 @@ rtc_library("rtc_media_base") {
"../api/crypto:frame_decryptor_interface",
"../api/crypto:frame_encryptor_interface",
"../api/crypto:options",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:datagram_transport_interface",
"../api/transport:stun_types",
"../api/transport/rtp:rtp_source",
@ -95,8 +97,6 @@ rtc_library("rtc_media_base") {
"../rtc_base/system:file_wrapper",
"../rtc_base/system:no_unique_address",
"../rtc_base/system:rtc_export",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
"../system_wrappers:field_trial",
]
@ -277,6 +277,8 @@ rtc_library("rtc_audio_video") {
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:bitrate_settings",
"../api/transport:field_trial_based_config",
"../api/transport/rtp:rtp_source",
@ -326,8 +328,6 @@ rtc_library("rtc_audio_video") {
"../rtc_base/experiments:rate_control_settings",
"../rtc_base/synchronization:mutex",
"../rtc_base/system:rtc_export",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/base64",
"../system_wrappers",
"../system_wrappers:metrics",
@ -419,7 +419,9 @@ if (rtc_build_dcsctp) {
deps = [
":rtc_data_sctp_transport_internal",
"../api:array_view",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:task_queue",
"../api/task_queue:to_queued_task",
"../media:rtc_media_base",
"../net/dcsctp/public:factory",
"../net/dcsctp/public:socket",
@ -436,8 +438,6 @@ if (rtc_build_dcsctp) {
"../rtc_base:stringutils",
"../rtc_base:threading",
"../rtc_base/containers:flat_map",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot:sigslot",
"../system_wrappers",
]

View file

@ -10,8 +10,8 @@
#include "media/base/media_channel.h"
#include "api/task_queue/to_queued_task.h"
#include "media/base/rtp_utils.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace cricket {
using webrtc::FrameDecryptorInterface;

View file

@ -26,6 +26,7 @@
#include "api/media_stream_interface.h"
#include "api/rtc_error.h"
#include "api/rtp_parameters.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/data_channel_transport_interface.h"
#include "api/transport/rtp/rtp_source.h"
#include "api/units/time_delta.h"
@ -52,7 +53,6 @@
#include "rtc_base/socket.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace rtc {
class Timing;

View file

@ -20,6 +20,7 @@
#include "absl/types/optional.h"
#include "api/call/transport.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/field_trial_based_config.h"
#include "api/video/video_bitrate_allocator_factory.h"
#include "api/video/video_frame.h"
@ -34,7 +35,6 @@
#include "media/engine/unhandled_packets_buffer.h"
#include "rtc_base/network_route.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread_annotations.h"
namespace webrtc {

View file

@ -24,6 +24,8 @@
#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/call/audio_sink.h"
#include "api/field_trials_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "media/base/audio_source.h"
#include "media/base/media_constants.h"
#include "media/base/stream_params.h"
@ -48,8 +50,6 @@
#include "rtc_base/strings/audio_format_to_string.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/strings/string_format.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/third_party/base64/base64.h"
#include "rtc_base/trace_event.h"
#include "system_wrappers/include/metrics.h"

View file

@ -20,6 +20,7 @@
#include "api/field_trials_view.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/transport/rtp/rtp_source.h"
#include "call/audio_state.h"
@ -30,7 +31,6 @@
#include "rtc_base/buffer.h"
#include "rtc_base/network_route.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace webrtc {
class AudioFrameProcessor;

View file

@ -39,6 +39,7 @@ rtc_library("pacing") {
"../../api:sequence_checker",
"../../api/rtc_event_log",
"../../api/task_queue:task_queue",
"../../api/task_queue:to_queued_task",
"../../api/transport:field_trial_based_config",
"../../api/transport:network_control",
"../../api/units:data_rate",
@ -58,7 +59,6 @@ rtc_library("pacing") {
"../../rtc_base/experiments:field_trial_parser",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:unused",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers",
"../../system_wrappers:metrics",
"../rtp_rtcp",
@ -101,6 +101,7 @@ if (rtc_include_tests) {
":interval_budget",
":pacing",
"../../api/task_queue:task_queue",
"../../api/task_queue:to_queued_task",
"../../api/transport:network_control",
"../../api/units:data_rate",
"../../api/units:time_delta",
@ -109,7 +110,6 @@ if (rtc_include_tests) {
"../../rtc_base:checks",
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base/experiments:alr_experiment",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers",
"../../test:explicit_key_value_config",
"../../test:scoped_key_value_config",

View file

@ -19,11 +19,11 @@
#include <vector>
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/network_types.h"
#include "api/units/data_rate.h"
#include "modules/pacing/packet_router.h"
#include "modules/utility/include/mock/mock_process_thread.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/scoped_key_value_config.h"

View file

@ -273,7 +273,9 @@ rtc_library("rtp_rtcp") {
"../../api/audio_codecs:audio_codecs_api",
"../../api/crypto:frame_encryptor_interface",
"../../api/rtc_event_log",
"../../api/task_queue:pending_task_safety_flag",
"../../api/task_queue:task_queue",
"../../api/task_queue:to_queued_task",
"../../api/transport:field_trial_based_config",
"../../api/transport/rtp:dependency_descriptor",
"../../api/transport/rtp:rtp_source",
@ -320,9 +322,7 @@ rtc_library("rtp_rtcp") {
"../../rtc_base/experiments:field_trial_parser",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:pending_task_safety_flag",
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/task_utils:to_queued_task",
"../../rtc_base/time:timestamp_extrapolator",
"../../system_wrappers",
"../../system_wrappers:metrics",
@ -394,6 +394,7 @@ rtc_library("rtcp_transceiver") {
"../../api:rtp_headers",
"../../api:transport_api",
"../../api/task_queue",
"../../api/task_queue:to_queued_task",
"../../api/units:data_rate",
"../../api/units:time_delta",
"../../api/units:timestamp",
@ -406,7 +407,6 @@ rtc_library("rtcp_transceiver") {
"../../rtc_base:timeutils",
"../../rtc_base/containers:flat_map",
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers",
]
absl_deps = [
@ -616,6 +616,7 @@ if (rtc_include_tests) {
"../../api:time_controller",
"../../api:transport_api",
"../../api/rtc_event_log",
"../../api/task_queue:to_queued_task",
"../../api/transport:field_trial_based_config",
"../../api/transport/rtp:dependency_descriptor",
"../../api/units:data_rate",
@ -650,7 +651,6 @@ if (rtc_include_tests) {
"../../rtc_base:task_queue_for_test",
"../../rtc_base:threading",
"../../rtc_base:timeutils",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers",
"../../test:field_trial",
"../../test:mock_frame_transformer",

View file

@ -14,11 +14,11 @@
#include <utility>
#include <vector>
#include "api/task_queue/to_queued_task.h"
#include "api/units/timestamp.h"
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
#include "rtc_base/checks.h"
#include "rtc_base/event.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {

View file

@ -16,6 +16,7 @@
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "api/call/transport.h"
#include "api/task_queue/to_queued_task.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/rtp_rtcp/include/receive_statistics.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
@ -36,7 +37,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/numerics/divide_round.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {

View file

@ -16,6 +16,7 @@
#include "absl/memory/memory.h"
#include "api/rtp_headers.h"
#include "api/task_queue/to_queued_task.h"
#include "api/test/create_time_controller.h"
#include "api/test/time_controller.h"
#include "api/units/data_rate.h"
@ -28,7 +29,6 @@
#include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
#include "modules/rtp_rtcp/source/rtcp_packet/compound_packet.h"
#include "modules/rtp_rtcp/source/time_util.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "system_wrappers/include/clock.h"
#include "test/gmock.h"
#include "test/gtest.h"

View file

@ -22,6 +22,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/sequence_checker.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
@ -29,7 +30,6 @@
#include "modules/rtp_rtcp/source/rtp_rtcp_config.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
#include "system_wrappers/include/ntp_time.h"

View file

@ -23,7 +23,9 @@
#include "absl/types/optional.h"
#include "api/rtp_headers.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "api/units/time_delta.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/include/module_fec_types.h"
@ -40,9 +42,7 @@
#include "rtc_base/gtest_prod_util.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread_annotations.h"
namespace webrtc {

View file

@ -16,10 +16,10 @@
#include <utility>
#include "absl/strings/match.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {
namespace {

View file

@ -20,6 +20,7 @@
#include "api/call/transport.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/data_rate.h"
#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
@ -32,7 +33,6 @@
#include "rtc_base/rate_statistics.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"

View file

@ -15,6 +15,7 @@
#include "absl/strings/string_view.h"
#include "api/rtc_event_log/rtc_event.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "api/video/video_codec_constants.h"
#include "api/video/video_timing.h"
@ -36,7 +37,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/rate_limiter.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "test/field_trial.h"
#include "test/gmock.h"
#include "test/gtest.h"

View file

@ -14,9 +14,9 @@
#include <vector>
#include "absl/memory/memory.h"
#include "api/task_queue/to_queued_task.h"
#include "modules/rtp_rtcp/source/rtp_descriptor_authentication.h"
#include "modules/rtp_rtcp/source/rtp_sender_video.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {
namespace {

View file

@ -83,6 +83,7 @@ rtc_library("nack_requester") {
"../../api:field_trials_view",
"../../api:sequence_checker",
"../../api/task_queue",
"../../api/task_queue:pending_task_safety_flag",
"../../api/units:time_delta",
"../../api/units:timestamp",
"../../rtc_base:checks",
@ -91,7 +92,6 @@ rtc_library("nack_requester") {
"../../rtc_base:rtc_numerics",
"../../rtc_base:rtc_task_queue",
"../../rtc_base/experiments:field_trial_parser",
"../../rtc_base/task_utils:pending_task_safety_flag",
"../../rtc_base/task_utils:repeating_task",
"../../system_wrappers",
"../utility",
@ -224,6 +224,7 @@ rtc_library("video_coding") {
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api/task_queue",
"../../api/task_queue:to_queued_task",
"../../api/units:data_rate",
"../../api/units:data_size",
"../../api/units:frequency",
@ -263,7 +264,6 @@ rtc_library("video_coding") {
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/task_utils:to_queued_task",
"../../rtc_base/third_party/base64",
"../../rtc_base/time:timestamp_extrapolator",
"../../system_wrappers",
@ -425,6 +425,7 @@ rtc_library("video_coding_utility") {
"../../api:field_trials_view",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api/task_queue:to_queued_task",
"../../api/video:encoded_frame",
"../../api/video:encoded_image",
"../../api/video:video_adaptation",
@ -456,7 +457,6 @@ rtc_library("video_coding_utility") {
"../../rtc_base/system:file_wrapper",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers:field_trial",
"../rtp_rtcp:rtp_rtcp_format",
]
@ -856,6 +856,7 @@ if (rtc_include_tests) {
"../../api:sequence_checker",
"../../api:videocodec_test_fixture_api",
"../../api/task_queue",
"../../api/task_queue:to_queued_task",
"../../api/video:builtin_video_bitrate_allocator_factory",
"../../api/video:encoded_image",
"../../api/video:video_bitrate_allocation",
@ -873,7 +874,6 @@ if (rtc_include_tests) {
"../../rtc_base:timeutils",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:to_queued_task",
"../../test:test_support",
"../../test:video_test_common",
"../../test:video_test_support",

View file

@ -19,6 +19,7 @@
#include <utility>
#include "api/scoped_refptr.h"
#include "api/task_queue/to_queued_task.h"
#include "api/video/builtin_video_bitrate_allocator_factory.h"
#include "api/video/i420_buffer.h"
#include "api/video/video_bitrate_allocator_factory.h"
@ -32,7 +33,6 @@
#include "modules/video_coding/codecs/interface/common_constants.h"
#include "modules/video_coding/include/video_error_codes.h"
#include "rtc_base/checks.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
#include "test/gtest.h"
#include "third_party/libyuv/include/libyuv/compare.h"

View file

@ -19,12 +19,12 @@
#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/units/time_delta.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/histogram.h"
#include "rtc_base/numerics/sequence_number_util.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"

View file

@ -15,6 +15,7 @@
#include <utility>
#include <vector>
#include "api/task_queue/to_queued_task.h"
#include "api/video/video_adaptation_reason.h"
#include "api/video_codecs/video_encoder.h"
#include "rtc_base/checks.h"
@ -22,7 +23,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/numerics/exp_filter.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/weak_ptr.h"

View file

@ -13,13 +13,13 @@
#include <memory>
#include <utility>
#include "api/task_queue/to_queued_task.h"
#include "api/video/video_adaptation_reason.h"
#include "rtc_base/checks.h"
#include "rtc_base/experiments/quality_scaler_settings.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/exp_filter.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/weak_ptr.h"
// TODO(kthelgason): Some versions of Android have issues with log2.

View file

@ -228,6 +228,7 @@ if (rtc_include_tests) {
"../../../api:create_network_emulation_manager",
"../../../api:network_emulation_manager_api",
"../../../api/task_queue:task_queue",
"../../../api/task_queue:to_queued_task",
"../../../api/units:time_delta",
"../../../call:simulated_network",
"../../../rtc_base:checks",
@ -238,7 +239,6 @@ if (rtc_include_tests) {
"../../../rtc_base:socket_address",
"../../../rtc_base:stringutils",
"../../../rtc_base:timeutils",
"../../../rtc_base/task_utils:to_queued_task",
"../../../test:test_support",
"../common:handover_testing",
"../common:internal_types",

View file

@ -19,6 +19,7 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "api/test/create_network_emulation_manager.h"
#include "api/test/network_emulation_manager.h"
#include "api/units/time_delta.h"
@ -34,7 +35,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/strings/string_format.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
#include "test/gmock.h"

View file

@ -33,11 +33,11 @@ rtc_library("timer") {
rtc_library("task_queue_timeout") {
deps = [
"../../../api:array_view",
"../../../api/task_queue:pending_task_safety_flag",
"../../../api/task_queue:task_queue",
"../../../api/task_queue:to_queued_task",
"../../../rtc_base:checks",
"../../../rtc_base:logging",
"../../../rtc_base/task_utils:pending_task_safety_flag",
"../../../rtc_base/task_utils:to_queued_task",
"../public:socket",
"../public:types",
]

View file

@ -9,9 +9,9 @@
*/
#include "net/dcsctp/timer/task_queue_timeout.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace dcsctp {

View file

@ -13,9 +13,9 @@
#include <memory>
#include <utility>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "net/dcsctp/public/timeout.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace dcsctp {

View file

@ -135,13 +135,13 @@ rtc_library("rtc_p2p") {
"../rtc_base/system:no_unique_address",
# Needed by pseudo_tcp, which should move to a separate target.
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../rtc_base:safe_minmax",
"../rtc_base:weak_ptr",
"../rtc_base/network:sent_packet",
"../rtc_base/synchronization:mutex",
"../rtc_base/system:rtc_export",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/base64",
"../rtc_base/third_party/sigslot",
"../system_wrappers:metrics",
@ -162,10 +162,10 @@ if (rtc_include_tests) {
deps = [
":rtc_p2p",
"../api:libjingle_peerconnection_api",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../rtc_base",
"../rtc_base:copy_on_write_buffer",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
@ -311,6 +311,7 @@ rtc_library("p2p_server_utils") {
"../api:array_view",
"../api:packet_socket_factory",
"../api:sequence_checker",
"../api/task_queue:to_queued_task",
"../api/transport:stun_types",
"../rtc_base",
"../rtc_base:byte_buffer",
@ -320,7 +321,6 @@ rtc_library("p2p_server_utils") {
"../rtc_base:socket_address",
"../rtc_base:stringutils",
"../rtc_base:threading",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
]
absl_deps = [
@ -340,6 +340,8 @@ rtc_library("libstunprober") {
":rtc_p2p",
"../api:packet_socket_factory",
"../api:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:stun_types",
"../rtc_base",
"../rtc_base:async_resolver_interface",
@ -351,8 +353,6 @@ rtc_library("libstunprober") {
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base/system:rtc_export",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
]
}

View file

@ -19,10 +19,10 @@
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
#include "api/ice_transport_interface.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "p2p/base/ice_transport_internal.h"
#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace cricket {

View file

@ -26,6 +26,7 @@
#include "api/candidate.h"
#include "api/field_trials_view.h"
#include "api/task_queue/queued_task.h"
#include "api/task_queue/to_queued_task.h"
#include "logging/rtc_event_log/ice_logger.h"
#include "p2p/base/basic_async_resolver_factory.h"
#include "p2p/base/basic_ice_controller.h"
@ -41,7 +42,6 @@
#include "rtc_base/network.h"
#include "rtc_base/network_constants.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/trace_event.h"

View file

@ -40,6 +40,7 @@
#include "api/ice_transport_interface.h"
#include "api/rtc_error.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/enums.h"
#include "api/transport/stun.h"
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
@ -67,7 +68,6 @@
#include "rtc_base/socket_address.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -9,7 +9,8 @@
*/
#include "p2p/base/regathering_controller.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "api/task_queue/to_queued_task.h"
namespace webrtc {

View file

@ -13,9 +13,9 @@
#include <memory>
#include "api/task_queue/pending_task_safety_flag.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/port_allocator.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
namespace webrtc {

View file

@ -18,10 +18,10 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "p2p/base/port.h"
#include "p2p/base/stun_request.h"
#include "rtc_base/async_packet_socket.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace cricket {

View file

@ -16,11 +16,11 @@
#include <vector>
#include "absl/memory/memory.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h" // For TimeMillis
namespace cricket {

View file

@ -19,10 +19,10 @@
#include <memory>
#include <string>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/transport/stun.h"
#include "api/units/time_delta.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace cricket {

View file

@ -74,6 +74,7 @@
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/to_queued_task.h"
#include "p2p/base/p2p_constants.h"
#include "rtc_base/checks.h"
#include "rtc_base/ip_address.h"
@ -81,7 +82,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/net_helper.h"
#include "rtc_base/rate_tracker.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
namespace cricket {

View file

@ -17,11 +17,11 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "p2p/base/connection.h"
#include "p2p/base/port.h"
#include "rtc_base/async_packet_socket.h"
#include "rtc_base/containers/flat_map.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace cricket {

View file

@ -19,6 +19,7 @@
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/stun.h"
#include "p2p/base/connection.h"
#include "p2p/base/p2p_constants.h"
@ -29,7 +30,6 @@
#include "rtc_base/net_helpers.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace cricket {

View file

@ -23,11 +23,11 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/async_dns_resolver.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "p2p/base/port.h"
#include "p2p/client/basic_port_allocator.h"
#include "rtc_base/async_packet_socket.h"
#include "rtc_base/ssl_certificate.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
namespace webrtc {
class TurnCustomizer;

View file

@ -18,6 +18,7 @@
#include "absl/memory/memory.h"
#include "api/array_view.h"
#include "api/packet_socket_factory.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/stun.h"
#include "p2p/base/async_stun_tcp_socket.h"
#include "rtc_base/byte_buffer.h"
@ -27,7 +28,6 @@
#include "rtc_base/message_digest.h"
#include "rtc_base/socket_adapters.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace cricket {

View file

@ -21,6 +21,7 @@
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "p2p/base/basic_packet_socket_factory.h"
#include "p2p/base/port.h"
@ -32,7 +33,6 @@
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/trace_event.h"
#include "system_wrappers/include/metrics.h"

View file

@ -17,6 +17,7 @@
#include "absl/strings/string_view.h"
#include "api/field_trials_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/turn_customizer.h"
#include "p2p/base/port_allocator.h"
#include "p2p/client/relay_port_factory_interface.h"
@ -25,7 +26,6 @@
#include "rtc_base/memory/always_valid_pointer.h"
#include "rtc_base/network.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -17,13 +17,13 @@
#include <utility>
#include "api/packet_socket_factory.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/stun.h"
#include "rtc_base/async_packet_socket.h"
#include "rtc_base/async_resolver_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
#include "rtc_base/time_utils.h"

View file

@ -16,12 +16,12 @@
#include <vector>
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "rtc_base/byte_buffer.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/network.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
namespace rtc {

View file

@ -77,6 +77,8 @@ rtc_source_set("channel") {
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/crypto:options",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/units:timestamp",
"../call:rtp_interfaces",
"../call:rtp_receiver",
@ -95,8 +97,6 @@ rtc_source_set("channel") {
"../rtc_base:threading",
"../rtc_base/containers:flat_set",
"../rtc_base/network:sent_packet",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
]
absl_deps = [
@ -788,6 +788,8 @@ rtc_source_set("peerconnection") {
"../api/neteq:neteq_api",
"../api/rtc_event_log",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:bitrate_settings",
"../api/transport:datagram_transport_interface",
"../api/transport:enums",
@ -829,8 +831,6 @@ rtc_source_set("peerconnection") {
"../rtc_base/system:no_unique_address",
"../rtc_base/system:rtc_export",
"../rtc_base/system:unused",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/base64",
"../rtc_base/third_party/sigslot",
"../stats",
@ -859,6 +859,7 @@ rtc_library("sctp_data_channel") {
"../api:priority",
"../api:rtc_error",
"../api:scoped_refptr",
"../api/task_queue:to_queued_task",
"../api/transport:datagram_transport_interface",
"../media:rtc_data_sctp_transport_internal",
"../media:rtc_media_base",
@ -871,7 +872,6 @@ rtc_library("sctp_data_channel") {
"../rtc_base:threading",
"../rtc_base:threading",
"../rtc_base/system:unused",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot:sigslot",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
@ -907,6 +907,7 @@ rtc_library("connection_context") {
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/neteq:neteq_api",
"../api/task_queue:to_queued_task",
"../api/transport:field_trial_based_config",
"../api/transport:sctp_transport_factory_interface",
"../media:rtc_data_sctp_transport_factory",
@ -920,7 +921,6 @@ rtc_library("connection_context") {
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base/memory:always_valid_pointer",
"../rtc_base/task_utils:to_queued_task",
]
}
@ -939,6 +939,7 @@ rtc_source_set("data_channel_controller") {
"../api:rtc_error",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue:to_queued_task",
"../api/transport:datagram_transport_interface",
"../media:rtc_media_base",
"../rtc_base",
@ -949,7 +950,6 @@ rtc_source_set("data_channel_controller") {
"../rtc_base:macromagic",
"../rtc_base:threading",
"../rtc_base:weak_ptr",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
]
absl_deps = [
@ -1196,6 +1196,8 @@ rtc_source_set("peer_connection") {
"../api/adaptation:resource_adaptation_api",
"../api/crypto:options",
"../api/rtc_event_log",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:bitrate_settings",
"../api/transport:datagram_transport_interface",
"../api/transport:enums",
@ -1218,8 +1220,6 @@ rtc_source_set("peer_connection") {
"../rtc_base:stringutils",
"../rtc_base:threading",
"../rtc_base:weak_ptr",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
"../system_wrappers:metrics",
]
@ -1557,6 +1557,8 @@ rtc_library("rtp_transceiver") {
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/video:video_bitrate_allocator_factory",
"../media:rtc_media_base",
"../rtc_base:checks",
@ -1564,8 +1566,6 @@ rtc_library("rtp_transceiver") {
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:threading",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
]
absl_deps = [
@ -1686,6 +1686,8 @@ rtc_library("audio_rtp_receiver") {
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/crypto:frame_decryptor_interface",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport/rtp:rtp_source",
"../media:rtc_media_base",
"../rtc_base",
@ -1694,8 +1696,6 @@ rtc_library("audio_rtp_receiver") {
"../rtc_base:macromagic",
"../rtc_base:threading",
"../rtc_base/system:no_unique_address",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
@ -1926,6 +1926,8 @@ rtc_library("dtmf_sender") {
"../api:libjingle_peerconnection_api",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../rtc_base:checks",
"../rtc_base:location",
"../rtc_base:logging",
@ -1933,8 +1935,6 @@ rtc_library("dtmf_sender") {
"../rtc_base:refcount",
"../rtc_base:rtc_base",
"../rtc_base:threading",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
]
absl_deps = [
@ -2070,7 +2070,9 @@ if (rtc_include_tests && !build_with_chromium) {
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:task_queue",
"../api/task_queue:to_queued_task",
"../api/transport:datagram_transport_interface",
"../api/transport:enums",
"../api/video:builtin_video_bitrate_allocator_factory",
@ -2100,8 +2102,6 @@ if (rtc_include_tests && !build_with_chromium) {
"../rtc_base:stringutils",
"../rtc_base:threading",
"../rtc_base/containers:flat_set",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/sigslot",
"../system_wrappers:metrics",
"../test:explicit_key_value_config",
@ -2534,6 +2534,8 @@ if (rtc_include_tests && !build_with_chromium) {
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:field_trial_based_config",
"../api/transport/rtp:rtp_source",
"../api/units:time_delta",
@ -2573,9 +2575,7 @@ if (rtc_include_tests && !build_with_chromium) {
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
"../rtc_base/task_utils:pending_task_safety_flag",
"../rtc_base/task_utils:repeating_task",
"../rtc_base/task_utils:to_queued_task",
"../rtc_base/third_party/base64",
"../rtc_base/third_party/sigslot",
"../system_wrappers:metrics",

View file

@ -17,11 +17,11 @@
#include <vector>
#include "api/sequence_checker.h"
#include "api/task_queue/to_queued_task.h"
#include "pc/audio_track.h"
#include "pc/media_stream_track_proxy.h"
#include "rtc_base/checks.h"
#include "rtc_base/location.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {

View file

@ -26,6 +26,7 @@
#include "api/rtp_receiver_interface.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/rtp/rtp_source.h"
#include "media/base/media_channel.h"
#include "pc/audio_track.h"
@ -34,7 +35,6 @@
#include "pc/remote_audio_source.h"
#include "pc/rtp_receiver.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -19,6 +19,8 @@
#include "absl/strings/string_view.h"
#include "api/rtp_parameters.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "api/units/timestamp.h"
#include "media/base/codec.h"
#include "media/base/rid_description.h"
@ -32,8 +34,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/network_route.h"
#include "rtc_base/strings/string_format.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/trace_event.h"
namespace cricket {

View file

@ -28,6 +28,7 @@
#include "api/rtp_transceiver_direction.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "call/rtp_demuxer.h"
#include "call/rtp_packet_sink_interface.h"
#include "media/base/media_channel.h"
@ -43,7 +44,6 @@
#include "rtc_base/network/sent_packet.h"
#include "rtc_base/network_route.h"
#include "rtc_base/socket.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -19,6 +19,8 @@
#include "api/array_view.h"
#include "api/audio_options.h"
#include "api/rtp_parameters.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "media/base/codec.h"
#include "media/base/fake_media_engine.h"
#include "media/base/fake_rtp.h"
@ -42,8 +44,6 @@
#include "rtc_base/location.h"
#include "rtc_base/rtc_certificate.h"
#include "rtc_base/ssl_identity.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/scoped_key_value_config.h"

View file

@ -13,13 +13,13 @@
#include <type_traits>
#include <utility>
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "media/base/media_engine.h"
#include "media/sctp/sctp_transport_factory.h"
#include "rtc_base/helpers.h"
#include "rtc_base/internal/default_socket_server.h"
#include "rtc_base/socket_server.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
namespace webrtc {

View file

@ -14,11 +14,11 @@
#include "api/peer_connection_interface.h"
#include "api/rtc_error.h"
#include "api/task_queue/to_queued_task.h"
#include "pc/peer_connection_internal.h"
#include "pc/sctp_utils.h"
#include "rtc_base/location.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace webrtc {

View file

@ -13,9 +13,9 @@
#include <ctype.h>
#include <string.h>
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace webrtc {

View file

@ -18,10 +18,10 @@
#include "api/dtmf_sender_interface.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "pc/proxy.h"
#include "rtc_base/location.h"
#include "rtc_base/ref_count.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -25,6 +25,7 @@
#include "api/jsep_ice_candidate.h"
#include "api/rtp_parameters.h"
#include "api/rtp_transceiver_direction.h"
#include "api/task_queue/to_queued_task.h"
#include "api/uma_metrics.h"
#include "api/video/video_codec_constants.h"
#include "call/audio_state.h"
@ -59,7 +60,6 @@
#include "rtc_base/network_constants.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/trace_event.h"
#include "rtc_base/unique_id_generator.h"
#include "system_wrappers/include/metrics.h"

View file

@ -45,6 +45,7 @@
#include "api/set_local_description_observer_interface.h"
#include "api/set_remote_description_observer_interface.h"
#include "api/stats/rtc_stats_collector_callback.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/bitrate_settings.h"
#include "api/transport/data_channel_transport_interface.h"
#include "api/transport/enums.h"
@ -78,7 +79,6 @@
#include "rtc_base/rtc_certificate.h"
#include "rtc_base/ssl_certificate.h"
#include "rtc_base/ssl_stream_adapter.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -21,6 +21,7 @@
#include "api/peer_connection_interface.h"
#include "api/rtp_parameters.h"
#include "api/sequence_checker.h"
#include "api/task_queue/to_queued_task.h"
#include "media/base/codec.h"
#include "media/base/media_constants.h"
#include "media/base/media_engine.h"
@ -30,7 +31,6 @@
#include "rtc_base/checks.h"
#include "rtc_base/location.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace webrtc {

View file

@ -30,6 +30,7 @@
#include "api/rtp_transceiver_direction.h"
#include "api/rtp_transceiver_interface.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/video/video_bitrate_allocator_factory.h"
#include "media/base/media_channel.h"
@ -42,7 +43,6 @@
#include "pc/rtp_sender_proxy.h"
#include "pc/rtp_transport_internal.h"
#include "pc/session_description.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread_annotations.h"

View file

@ -15,6 +15,7 @@
#include <string>
#include <utility>
#include "api/task_queue/to_queued_task.h"
#include "media/sctp/sctp_transport_internal.h"
#include "pc/proxy.h"
#include "pc/sctp_utils.h"
@ -22,7 +23,6 @@
#include "rtc_base/location.h"
#include "rtc_base/logging.h"
#include "rtc_base/system/unused.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace webrtc {

View file

@ -52,7 +52,9 @@
#include "api/stats/rtc_stats_report.h"
#include "api/stats/rtcstats_objects.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "api/uma_metrics.h"
#include "api/video/video_rotation.h"
@ -111,9 +113,7 @@
#include "rtc_base/rtc_certificate_generator.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/ssl_stream_adapter.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/test_certificate_verifier.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -608,8 +608,8 @@ rtc_library("rtc_task_queue") {
deps = [
":macromagic",
"../api/task_queue",
"../api/task_queue:to_queued_task",
"system:rtc_export",
"task_utils:to_queued_task",
]
absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
@ -946,11 +946,11 @@ rtc_library("threading") {
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"synchronization:mutex",
"system:no_unique_address",
"system:rtc_export",
"task_utils:pending_task_safety_flag",
"task_utils:to_queued_task",
"third_party/sigslot",
]
if (is_android) {
@ -1089,6 +1089,8 @@ rtc_library("rtc_base") {
"../api:sequence_checker",
"../api/numerics",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:to_queued_task",
"../api/transport:field_trial_based_config",
"../system_wrappers:field_trial",
"memory:always_valid_pointer",
@ -1098,9 +1100,7 @@ rtc_library("rtc_base") {
"system:inline",
"system:no_unique_address",
"system:rtc_export",
"task_utils:pending_task_safety_flag",
"task_utils:repeating_task",
"task_utils:to_queued_task",
"third_party/base64",
"third_party/sigslot",
]
@ -1376,13 +1376,13 @@ rtc_library("rtc_base_tests_utils") {
":stringutils",
":threading",
":timeutils",
"../api/task_queue:to_queued_task",
"../api/units:time_delta",
"../api/units:timestamp",
"../test:scoped_key_value_config",
"memory:always_valid_pointer",
"memory:fifo_buffer",
"synchronization:mutex",
"task_utils:to_queued_task",
"third_party/sigslot",
]
absl_deps = [
@ -1407,7 +1407,7 @@ rtc_library("task_queue_for_test") {
":rtc_task_queue",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"task_utils:to_queued_task",
"../api/task_queue:to_queued_task",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
@ -1594,6 +1594,7 @@ if (rtc_include_tests) {
"../api:make_ref_counted",
"../api:scoped_refptr",
"../api/numerics",
"../api/task_queue:to_queued_task",
"../api/units:time_delta",
"../system_wrappers",
"../test:fileutils",
@ -1603,7 +1604,6 @@ if (rtc_include_tests) {
"containers:unittests",
"memory:unittests",
"synchronization:mutex",
"task_utils:to_queued_task",
"third_party/base64",
"third_party/sigslot",
]
@ -1735,7 +1735,9 @@ if (rtc_include_tests) {
"../api:array_view",
"../api:make_ref_counted",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/task_queue:task_queue_test",
"../api/task_queue:to_queued_task",
"../test:field_trial",
"../test:fileutils",
"../test:rtc_expect_death",
@ -1744,8 +1746,6 @@ if (rtc_include_tests) {
"../test:test_support",
"memory:fifo_buffer",
"synchronization:mutex",
"task_utils:pending_task_safety_flag",
"task_utils:to_queued_task",
"third_party/sigslot",
]
if (enable_google_benchmarks) {

View file

@ -34,11 +34,11 @@
#endif // defined(WEBRTC_POSIX) && !defined(__native_client__)
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/logging.h"
#include "rtc_base/platform_thread.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/third_party/sigslot/sigslot.h" // for signal_with_thread...
#if defined(WEBRTC_MAC) || defined(WEBRTC_IOS)

View file

@ -20,13 +20,13 @@
#include <vector>
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "rtc_base/async_resolver_interface.h"
#include "rtc_base/event.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/system/no_unique_address.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"

View file

@ -16,10 +16,10 @@
#include <string>
#include "absl/strings/string_view.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/location.h"
#include "rtc_base/mdns_responder_interface.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace webrtc {

View file

@ -35,9 +35,9 @@ rtc_library("fifo_buffer") {
deps = [
"..:rtc_base",
"..:threading",
"../../api/task_queue:pending_task_safety_flag",
"../../api/task_queue:to_queued_task",
"../synchronization:mutex",
"../task_utils:pending_task_safety_flag",
"../task_utils:to_queued_task",
]
}

View file

@ -13,10 +13,10 @@
#include <memory>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/stream.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
namespace rtc {

View file

@ -30,6 +30,7 @@
#include "absl/memory/memory.h"
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/to_queued_task.h"
#include "api/transport/field_trial_based_config.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
@ -39,7 +40,6 @@
#include "rtc_base/string_encode.h"
#include "rtc_base/string_utils.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
namespace rtc {

View file

@ -24,6 +24,7 @@
#include "api/array_view.h"
#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/field_trial_based_config.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/mdns_responder_interface.h"
@ -32,7 +33,6 @@
#include "rtc_base/network_monitor_factory.h"
#include "rtc_base/socket_factory.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread_annotations.h"

View file

@ -39,10 +39,10 @@
#else
#include "rtc_base/openssl_identity.h"
#endif
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/openssl_utility.h"
#include "rtc_base/ssl_certificate.h"
#include "rtc_base/stream.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread.h"
#include "rtc_base/time_utils.h"
#include "system_wrappers/include/field_trial.h"

View file

@ -27,11 +27,11 @@
#else
#include "rtc_base/openssl_identity.h"
#endif
#include "api/task_queue/pending_task_safety_flag.h"
#include "rtc_base/ssl_identity.h"
#include "rtc_base/ssl_stream_adapter.h"
#include "rtc_base/stream.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/repeating_task.h"
namespace rtc {

View file

@ -17,6 +17,8 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/buffer_queue.h"
#include "rtc_base/checks.h"
#include "rtc_base/gunit.h"
@ -28,8 +30,6 @@
#include "rtc_base/ssl_adapter.h"
#include "rtc_base/ssl_identity.h"
#include "rtc_base/stream.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "test/field_trial.h"
using ::testing::Combine;

View file

@ -20,8 +20,8 @@
#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread_annotations.h"
namespace rtc {

View file

@ -15,11 +15,11 @@
#include "absl/strings/string_view.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/checks.h"
#include "rtc_base/event.h"
#include "rtc_base/location.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/thread_annotations.h"
namespace webrtc {

View file

@ -14,12 +14,12 @@ rtc_library("repeating_task") {
"repeating_task.h",
]
deps = [
":pending_task_safety_flag",
":to_queued_task",
"..:logging",
"..:timeutils",
"../../api:sequence_checker",
"../../api/task_queue",
"../../api/task_queue:pending_task_safety_flag",
"../../api/task_queue:to_queued_task",
"../../api/units:time_delta",
"../../api/units:timestamp",
"../../system_wrappers:system_wrappers",
@ -28,66 +28,29 @@ rtc_library("repeating_task") {
}
rtc_library("pending_task_safety_flag") {
sources = [
"pending_task_safety_flag.cc",
"pending_task_safety_flag.h",
]
deps = [
"..:checks",
"../../api:refcountedbase",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../system:no_unique_address",
]
sources = [ "pending_task_safety_flag.h" ]
deps = [ "../../api/task_queue:pending_task_safety_flag" ]
}
rtc_source_set("to_queued_task") {
sources = [ "to_queued_task.h" ]
deps = [
":pending_task_safety_flag",
"../../api/task_queue",
]
deps = [ "../../api/task_queue:to_queued_task" ]
}
if (rtc_include_tests) {
rtc_library("pending_task_safety_flag_unittests") {
testonly = true
sources = [ "pending_task_safety_flag_unittest.cc" ]
deps = [
":pending_task_safety_flag",
":to_queued_task",
"..:logging",
"..:rtc_event",
"..:rtc_task_queue",
"..:task_queue_for_test",
"../../test:test_support",
]
}
rtc_library("repeating_task_unittests") {
testonly = true
sources = [ "repeating_task_unittest.cc" ]
deps = [
":repeating_task",
":to_queued_task",
"..:rtc_event",
"..:rtc_task_queue",
"..:task_queue_for_test",
"../../api/task_queue",
"../../api/task_queue:to_queued_task",
"../../api/units:timestamp",
"../../system_wrappers:system_wrappers",
"../../test:test_support",
]
}
rtc_library("to_queued_task_unittests") {
testonly = true
sources = [ "to_queued_task_unittest.cc" ]
deps = [
":to_queued_task",
"../../api/task_queue",
"../../test:test_support",
]
absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
}

View file

@ -11,148 +11,6 @@
#ifndef RTC_BASE_TASK_UTILS_PENDING_TASK_SAFETY_FLAG_H_
#define RTC_BASE_TASK_UTILS_PENDING_TASK_SAFETY_FLAG_H_
#include "api/ref_counted_base.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "rtc_base/checks.h"
#include "rtc_base/system/no_unique_address.h"
namespace webrtc {
// The PendingTaskSafetyFlag and the ScopedTaskSafety are designed to address
// the issue where you have a task to be executed later that has references,
// but cannot guarantee that the referenced object is alive when the task is
// executed.
// This mechanism can be used with tasks that are created and destroyed
// on a single thread / task queue, and with tasks posted to the same
// thread/task queue, but tasks can be posted from any thread/TQ.
// Typical usage:
// When posting a task, post a copy (capture by-value in a lambda) of the flag
// reference and before performing the work, check the `alive()` state. Abort if
// alive() returns `false`:
//
// class ExampleClass {
// ....
// my_task_queue_->PostTask(ToQueuedTask(
// [safety = pending_task_safety_flag_, this]() {
// // Now running on the main thread.
// if (!safety->alive())
// return;
// MyMethod();
// }));
// ....
// ~ExampleClass() {
// pending_task_safety_flag_->SetNotAlive();
// }
// scoped_refptr<PendingTaskSafetyFlag> pending_task_safety_flag_
// = PendingTaskSafetyFlag::Create();
// }
//
// ToQueuedTask has an overload that makes this check automatic:
//
// my_task_queue_->PostTask(ToQueuedTask(pending_task_safety_flag_,
// [this]() { MyMethod(); }));
//
class PendingTaskSafetyFlag final
: public rtc::RefCountedNonVirtual<PendingTaskSafetyFlag> {
public:
static rtc::scoped_refptr<PendingTaskSafetyFlag> Create();
// Creates a flag, but with its SequenceChecker initially detached. Hence, it
// may be created on a different thread than the flag will be used on.
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateDetached();
// Same as `CreateDetached()` except the initial state of the returned flag
// will be `!alive()`.
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateDetachedInactive();
~PendingTaskSafetyFlag() = default;
void SetNotAlive();
// The SetAlive method is intended to support Start/Stop/Restart usecases.
// When a class has called SetNotAlive on a flag used for posted tasks, and
// decides it wants to post new tasks and have them run, there are two
// reasonable ways to do that:
//
// (i) Use the below SetAlive method. One subtlety is that any task posted
// prior to SetNotAlive, and still in the queue, is resurrected and will
// run.
//
// (ii) Create a fresh flag, and just drop the reference to the old one. This
// avoids the above problem, and ensures that tasks poster prior to
// SetNotAlive stay cancelled. Instead, there's a potential data race on
// the flag pointer itself. Some synchronization is required between the
// thread overwriting the flag pointer, and the threads that want to post
// tasks and therefore read that same pointer.
void SetAlive();
bool alive() const;
protected:
explicit PendingTaskSafetyFlag(bool alive) : alive_(alive) {}
private:
static rtc::scoped_refptr<PendingTaskSafetyFlag> CreateInternal(bool alive);
bool alive_ = true;
RTC_NO_UNIQUE_ADDRESS SequenceChecker main_sequence_;
};
// The ScopedTaskSafety makes using PendingTaskSafetyFlag very simple.
// It does automatic PTSF creation and signalling of destruction when the
// ScopedTaskSafety instance goes out of scope.
//
// ToQueuedTask has an overload that takes a ScopedTaskSafety too, so there
// is no need to explicitly call the "flag" method.
//
// Example usage:
//
// my_task_queue->PostTask(ToQueuedTask(scoped_task_safety,
// [this]() {
// // task goes here
// }
//
// This should be used by the class that wants tasks dropped after destruction.
// The requirement is that the instance has to be constructed and destructed on
// the same thread as the potentially dropped tasks would be running on.
class ScopedTaskSafety final {
public:
ScopedTaskSafety() = default;
explicit ScopedTaskSafety(rtc::scoped_refptr<PendingTaskSafetyFlag> flag)
: flag_(std::move(flag)) {}
~ScopedTaskSafety() { flag_->SetNotAlive(); }
// Returns a new reference to the safety flag.
rtc::scoped_refptr<PendingTaskSafetyFlag> flag() const { return flag_; }
// Marks the current flag as not-alive and attaches to a new one.
void reset(rtc::scoped_refptr<PendingTaskSafetyFlag> new_flag =
PendingTaskSafetyFlag::Create()) {
flag_->SetNotAlive();
flag_ = std::move(new_flag);
}
private:
rtc::scoped_refptr<PendingTaskSafetyFlag> flag_ =
PendingTaskSafetyFlag::Create();
};
// Like ScopedTaskSafety, but allows construction on a different thread than
// where the flag will be used.
class ScopedTaskSafetyDetached final {
public:
ScopedTaskSafetyDetached() = default;
~ScopedTaskSafetyDetached() { flag_->SetNotAlive(); }
// Returns a new reference to the safety flag.
rtc::scoped_refptr<PendingTaskSafetyFlag> flag() const { return flag_; }
private:
rtc::scoped_refptr<PendingTaskSafetyFlag> flag_ =
PendingTaskSafetyFlag::CreateDetached();
};
} // namespace webrtc
#include "api/task_queue/pending_task_safety_flag.h"
#endif // RTC_BASE_TASK_UTILS_PENDING_TASK_SAFETY_FLAG_H_

View file

@ -11,9 +11,9 @@
#include "rtc_base/task_utils/repeating_task.h"
#include "absl/memory/memory.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/to_queued_task.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
namespace webrtc {

View file

@ -15,11 +15,11 @@
#include <type_traits>
#include <utility>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "rtc_base/task_utils/pending_task_safety_flag.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {

View file

@ -15,10 +15,10 @@
#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/to_queued_task.h"
#include "api/units/timestamp.h"
#include "rtc_base/event.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/to_queued_task.h"
#include "system_wrappers/include/clock.h"
#include "test/gmock.h"
#include "test/gtest.h"

Some files were not shown because too many files have changed in this diff Show more