Migrate remaining webrtc usage of TaskQueueBase to absl::AnyInvocable
Bug: webrtc:14245
Change-Id: I8de2c23da5fbdfc0b1efbbe07fb6e8de744424a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268191
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37565}
diff --git a/api/metronome/test/BUILD.gn b/api/metronome/test/BUILD.gn
index 160b45c..0ea13b3 100644
--- a/api/metronome/test/BUILD.gn
+++ b/api/metronome/test/BUILD.gn
@@ -18,7 +18,6 @@
"..:metronome",
"../..:priority",
"../..:sequence_checker",
- "../../../api/task_queue:to_queued_task",
"../../../rtc_base:macromagic",
"../../../rtc_base:rtc_event",
"../../../rtc_base:rtc_task_queue",
diff --git a/api/metronome/test/fake_metronome.cc b/api/metronome/test/fake_metronome.cc
index 7813a3d..cb471b9 100644
--- a/api/metronome/test/fake_metronome.cc
+++ b/api/metronome/test/fake_metronome.cc
@@ -13,7 +13,6 @@
#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"
@@ -41,8 +40,7 @@
void ForcedTickMetronome::Tick() {
for (auto* listener : listeners_) {
- listener->OnTickTaskQueue()->PostTask(
- ToQueuedTask([listener] { listener->OnTick(); }));
+ listener->OnTickTaskQueue()->PostTask([listener] { listener->OnTick(); });
}
}
@@ -66,7 +64,7 @@
return TimeDelta::PlusInfinity();
for (auto* listener : listeners_) {
listener->OnTickTaskQueue()->PostTask(
- ToQueuedTask([listener] { listener->OnTick(); }));
+ [listener] { listener->OnTick(); });
}
return tick_period_;
});
diff --git a/api/task_queue/test/BUILD.gn b/api/task_queue/test/BUILD.gn
index fa82dd0..25f7ed0 100644
--- a/api/task_queue/test/BUILD.gn
+++ b/api/task_queue/test/BUILD.gn
@@ -13,6 +13,8 @@
sources = [ "mock_task_queue_base.h" ]
deps = [
"../../../api/task_queue:task_queue",
+ "../../../api/units:time_delta",
"../../../test:test_support",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
}
diff --git a/api/task_queue/test/mock_task_queue_base.h b/api/task_queue/test/mock_task_queue_base.h
index 68c5c05..2e99be7 100644
--- a/api/task_queue/test/mock_task_queue_base.h
+++ b/api/task_queue/test/mock_task_queue_base.h
@@ -11,20 +11,25 @@
#ifndef API_TASK_QUEUE_TEST_MOCK_TASK_QUEUE_BASE_H_
#define API_TASK_QUEUE_TEST_MOCK_TASK_QUEUE_BASE_H_
-#include <memory>
-
+#include "absl/functional/any_invocable.h"
#include "api/task_queue/task_queue_base.h"
+#include "api/units/time_delta.h"
#include "test/gmock.h"
namespace webrtc {
class MockTaskQueueBase : public TaskQueueBase {
public:
- MOCK_METHOD0(Delete, void());
- MOCK_METHOD1(PostTask, void(std::unique_ptr<QueuedTask>));
- MOCK_METHOD2(PostDelayedTask, void(std::unique_ptr<QueuedTask>, uint32_t));
- MOCK_METHOD2(PostDelayedHighPrecisionTask,
- void(std::unique_ptr<QueuedTask>, uint32_t));
+ MOCK_METHOD(void, Delete, (), (override));
+ MOCK_METHOD(void, PostTask, (absl::AnyInvocable<void() &&>), (override));
+ MOCK_METHOD(void,
+ PostDelayedTask,
+ (absl::AnyInvocable<void() &&>, TimeDelta),
+ (override));
+ MOCK_METHOD(void,
+ PostDelayedHighPrecisionTask,
+ (absl::AnyInvocable<void() &&>, TimeDelta),
+ (override));
};
} // namespace webrtc
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 3efd00a..86cf7e8 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -62,7 +62,6 @@
"../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",
@@ -168,6 +167,7 @@
"../api/crypto:frame_decryptor_interface",
"../api/rtc_event_log",
"../api/task_queue:default_task_queue_factory",
+ "../api/task_queue/test:mock_task_queue_base",
"../api/units:time_delta",
"../call:mock_bitrate_allocator",
"../call:mock_call_interfaces",
@@ -324,7 +324,7 @@
"../test:test_support",
"//testing/gtest",
]
-
+ absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
data = [ "//resources/voice_engine/audio_dtx16.wav" ]
}
}
diff --git a/audio/audio_state_unittest.cc b/audio/audio_state_unittest.cc
index 824a2ee..4426a78 100644
--- a/audio/audio_state_unittest.cc
+++ b/audio/audio_state_unittest.cc
@@ -14,6 +14,7 @@
#include <utility>
#include <vector>
+#include "api/task_queue/test/mock_task_queue_base.h"
#include "call/test/mock_audio_send_stream.h"
#include "modules/audio_device/include/mock_audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
@@ -34,18 +35,14 @@
constexpr int kNumberOfChannels = 1;
struct FakeAsyncAudioProcessingHelper {
- class FakeTaskQueue : public StrictMock<TaskQueueBase> {
+ class FakeTaskQueue : public StrictMock<MockTaskQueueBase> {
public:
FakeTaskQueue() = default;
void Delete() override { delete this; }
- void PostTask(std::unique_ptr<QueuedTask> task) override {
- std::move(task)->Run();
+ void PostTask(absl::AnyInvocable<void() &&> task) override {
+ std::move(task)();
}
- MOCK_METHOD(void,
- PostDelayedTask,
- (std::unique_ptr<QueuedTask> task, uint32_t milliseconds),
- (override));
};
class FakeTaskQueueFactory : public TaskQueueFactory {
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 6b8d1c1..c1225b1 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -23,7 +23,6 @@
#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"
@@ -482,7 +481,7 @@
++audio_frame_interval_count_;
if (audio_frame_interval_count_ >= kHistogramReportingInterval) {
audio_frame_interval_count_ = 0;
- worker_thread_->PostTask(ToQueuedTask(worker_safety_, [this]() {
+ worker_thread_->PostTask(SafeTask(worker_safety_.flag(), [this]() {
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
RTC_HISTOGRAM_COUNTS_1000("WebRTC.Audio.TargetJitterBufferDelayMs",
acm_receiver_.TargetDelayMs());
diff --git a/audio/channel_receive_frame_transformer_delegate.cc b/audio/channel_receive_frame_transformer_delegate.cc
index 085721e..0f742e5 100644
--- a/audio/channel_receive_frame_transformer_delegate.cc
+++ b/audio/channel_receive_frame_transformer_delegate.cc
@@ -12,7 +12,6 @@
#include <utility>
-#include "api/task_queue/to_queued_task.h"
#include "rtc_base/buffer.h"
namespace webrtc {
@@ -80,10 +79,10 @@
void ChannelReceiveFrameTransformerDelegate::OnTransformedFrame(
std::unique_ptr<TransformableFrameInterface> frame) {
rtc::scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate(this);
- channel_receive_thread_->PostTask(ToQueuedTask(
+ channel_receive_thread_->PostTask(
[delegate = std::move(delegate), frame = std::move(frame)]() mutable {
delegate->ReceiveFrame(std::move(frame));
- }));
+ });
}
void ChannelReceiveFrameTransformerDelegate::ReceiveFrame(
diff --git a/audio/test/audio_bwe_integration_test.cc b/audio/test/audio_bwe_integration_test.cc
index 23b8183..1d1ecdd 100644
--- a/audio/test/audio_bwe_integration_test.cc
+++ b/audio/test/audio_bwe_integration_test.cc
@@ -12,7 +12,7 @@
#include <memory>
-#include "api/task_queue/queued_task.h"
+#include "absl/functional/any_invocable.h"
#include "api/task_queue/task_queue_base.h"
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
@@ -84,21 +84,15 @@
SleepMs(GetNetworkPipeConfig().queue_delay_ms + kExtraProcessTimeMs);
}
-class StatsPollTask : public QueuedTask {
- public:
- explicit StatsPollTask(Call* sender_call) : sender_call_(sender_call) {}
-
- private:
- bool Run() override {
- RTC_CHECK(sender_call_);
- Call::Stats call_stats = sender_call_->GetStats();
+absl::AnyInvocable<void() &&> StatsPollTask(Call* sender_call) {
+ RTC_CHECK(sender_call);
+ return [sender_call] {
+ Call::Stats call_stats = sender_call->GetStats();
EXPECT_GT(call_stats.send_bandwidth_bps, 25000);
- TaskQueueBase::Current()->PostDelayedTask(std::unique_ptr<QueuedTask>(this),
- 100);
- return false;
- }
- Call* sender_call_;
-};
+ TaskQueueBase::Current()->PostDelayedTask(StatsPollTask(sender_call),
+ TimeDelta::Millis(100));
+ };
+}
class NoBandwidthDropAfterDtx : public AudioBweTest {
public:
@@ -144,8 +138,8 @@
}
void PerformTest() override {
- stats_poller_.PostDelayedTask(std::make_unique<StatsPollTask>(sender_call_),
- 100);
+ stats_poller_.PostDelayedTask(StatsPollTask(sender_call_),
+ TimeDelta::Millis(100));
sender_call_->OnAudioTransportOverheadChanged(0);
AudioBweTest::PerformTest();
}
diff --git a/audio/voip/test/BUILD.gn b/audio/voip/test/BUILD.gn
index d2ae985..e89f2b0 100644
--- a/audio/voip/test/BUILD.gn
+++ b/audio/voip/test/BUILD.gn
@@ -15,6 +15,7 @@
sources = [ "mock_task_queue.h" ]
deps = [
"../../../api/task_queue:task_queue",
+ "../../../api/task_queue/test:mock_task_queue_base",
"../../../test:test_support",
]
}
@@ -56,6 +57,7 @@
"../../../test:mock_transport",
"../../../test:test_support",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
}
rtc_library("audio_ingress_unittests") {
diff --git a/audio/voip/test/audio_channel_unittest.cc b/audio/voip/test/audio_channel_unittest.cc
index a4f518c..8955810 100644
--- a/audio/voip/test/audio_channel_unittest.cc
+++ b/audio/voip/test/audio_channel_unittest.cc
@@ -9,6 +9,8 @@
*/
#include "audio/voip/audio_channel.h"
+
+#include "absl/functional/any_invocable.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/call/transport.h"
@@ -49,7 +51,7 @@
// By default, run the queued task immediately.
ON_CALL(task_queue_, PostTask)
.WillByDefault(
- Invoke([&](std::unique_ptr<QueuedTask> task) { task->Run(); }));
+ [](absl::AnyInvocable<void() &&> task) { std::move(task)(); });
}
void SetUp() override { audio_channel_ = CreateAudioChannel(kLocalSsrc); }
diff --git a/audio/voip/test/mock_task_queue.h b/audio/voip/test/mock_task_queue.h
index c3553a2..547b0d3 100644
--- a/audio/voip/test/mock_task_queue.h
+++ b/audio/voip/test/mock_task_queue.h
@@ -14,13 +14,14 @@
#include <memory>
#include "api/task_queue/task_queue_factory.h"
+#include "api/task_queue/test/mock_task_queue_base.h"
#include "test/gmock.h"
namespace webrtc {
// MockTaskQueue enables immediate task run from global TaskQueueBase.
// It's necessary for some tests depending on TaskQueueBase internally.
-class MockTaskQueue : public TaskQueueBase {
+class MockTaskQueue : public MockTaskQueueBase {
public:
MockTaskQueue() : current_(this) {}
@@ -28,12 +29,6 @@
// hold onto current global TaskQueueBase throughout the testing.
void Delete() override {}
- MOCK_METHOD(void, PostTask, (std::unique_ptr<QueuedTask>), (override));
- MOCK_METHOD(void,
- PostDelayedTask,
- (std::unique_ptr<QueuedTask>, uint32_t),
- (override));
-
private:
CurrentTaskQueueSetter current_;
};
diff --git a/call/adaptation/BUILD.gn b/call/adaptation/BUILD.gn
index 1aa4da7..c195232 100644
--- a/call/adaptation/BUILD.gn
+++ b/call/adaptation/BUILD.gn
@@ -39,7 +39,6 @@
"../../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",
@@ -121,7 +120,6 @@
"../../api:sequence_checker",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
- "../../api/task_queue:to_queued_task",
"../../api/video:video_stream_encoder",
"../../test:test_support",
]
diff --git a/call/adaptation/resource_adaptation_processor.cc b/call/adaptation/resource_adaptation_processor.cc
index 54a683b..f4d1bf3 100644
--- a/call/adaptation/resource_adaptation_processor.cc
+++ b/call/adaptation/resource_adaptation_processor.cc
@@ -17,7 +17,6 @@
#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"
diff --git a/common_video/incoming_video_stream.cc b/common_video/incoming_video_stream.cc
index 6279f83..5f41ac2 100644
--- a/common_video/incoming_video_stream.cc
+++ b/common_video/incoming_video_stream.cc
@@ -14,6 +14,7 @@
#include <utility>
#include "absl/types/optional.h"
+#include "api/units/time_delta.h"
#include "common_video/video_render_frames.h"
#include "rtc_base/checks.h"
#include "rtc_base/trace_event.h"
@@ -58,7 +59,7 @@
if (render_buffers_.HasPendingFrames()) {
uint32_t wait_time = render_buffers_.TimeToNextFrameRelease();
incoming_render_queue_.PostDelayedHighPrecisionTask(
- ToQueuedTask([this]() { Dequeue(); }), wait_time);
+ [this]() { Dequeue(); }, TimeDelta::Millis(wait_time));
}
}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 8905c4a..2507e7e 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -367,6 +367,7 @@
"../api:sequence_checker",
"../api/rtc_event_log",
"../api/task_queue",
+ "../api/units:time_delta",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
diff --git a/logging/rtc_event_log/rtc_event_log_impl.cc b/logging/rtc_event_log/rtc_event_log_impl.cc
index 444dd48..a48bbde 100644
--- a/logging/rtc_event_log/rtc_event_log_impl.cc
+++ b/logging/rtc_event_log/rtc_event_log_impl.cc
@@ -18,8 +18,8 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
-#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
+#include "api/units/time_delta.h"
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.h"
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.h"
#include "rtc_base/checks.h"
@@ -182,7 +182,8 @@
const int64_t time_since_output_ms = now_ms - last_output_ms_;
const uint32_t delay = rtc::SafeClamp(
*output_period_ms_ - time_since_output_ms, 0, *output_period_ms_);
- task_queue_->PostDelayedTask(ToQueuedTask(std::move(output_task)), delay);
+ task_queue_->PostDelayedTask(std::move(output_task),
+ TimeDelta::Millis(delay));
}
}
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 2d38313..8e810b7 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -65,7 +65,6 @@
"../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",
@@ -278,7 +277,6 @@
"../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",
@@ -422,7 +420,6 @@
"../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",
diff --git a/media/base/media_channel.cc b/media/base/media_channel.cc
index c3b2480..e01bfb1 100644
--- a/media/base/media_channel.cc
+++ b/media/base/media_channel.cc
@@ -10,7 +10,6 @@
#include "media/base/media_channel.h"
-#include "api/task_queue/to_queued_task.h"
#include "media/base/rtp_utils.h"
namespace cricket {
@@ -18,8 +17,8 @@
using webrtc::FrameEncryptorInterface;
using webrtc::FrameTransformerInterface;
using webrtc::PendingTaskSafetyFlag;
+using webrtc::SafeTask;
using webrtc::TaskQueueBase;
-using webrtc::ToQueuedTask;
using webrtc::VideoTrackInterface;
VideoOptions::VideoOptions()
@@ -126,7 +125,7 @@
// This is currently the common path as the derived channel classes
// get called on the worker thread. There are still some tests though
// that call directly on the network thread.
- network_thread_->PostTask(ToQueuedTask(
+ network_thread_->PostTask(SafeTask(
network_safety_, [this, new_dscp]() { SetPreferredDscp(new_dscp); }));
return;
}
@@ -190,7 +189,7 @@
if (network_thread_->IsCurrent()) {
send();
} else {
- network_thread_->PostTask(ToQueuedTask(network_safety_, std::move(send)));
+ network_thread_->PostTask(SafeTask(network_safety_, std::move(send)));
}
}
@@ -207,7 +206,7 @@
if (network_thread_->IsCurrent()) {
send();
} else {
- network_thread_->PostTask(ToQueuedTask(network_safety_, std::move(send)));
+ network_thread_->PostTask(SafeTask(network_safety_, std::move(send)));
}
}
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc
index 22796ad..199d005 100644
--- a/media/engine/webrtc_video_engine.cc
+++ b/media/engine/webrtc_video_engine.cc
@@ -920,7 +920,7 @@
void WebRtcVideoChannel::RequestEncoderFallback() {
if (!worker_thread_->IsCurrent()) {
worker_thread_->PostTask(
- ToQueuedTask(task_safety_, [this] { RequestEncoderFallback(); }));
+ SafeTask(task_safety_.flag(), [this] { RequestEncoderFallback(); }));
return;
}
@@ -942,7 +942,7 @@
bool allow_default_fallback) {
if (!worker_thread_->IsCurrent()) {
worker_thread_->PostTask(
- ToQueuedTask(task_safety_, [this, format, allow_default_fallback] {
+ SafeTask(task_safety_.flag(), [this, format, allow_default_fallback] {
RequestEncoderSwitch(format, allow_default_fallback);
}));
return;
@@ -1724,7 +1724,7 @@
// to a common implementation and provide a callback on the worker thread
// for the exception case (DELIVERY_UNKNOWN_SSRC) and how retry is attempted.
worker_thread_->PostTask(
- ToQueuedTask(task_safety_, [this, packet, packet_time_us] {
+ SafeTask(task_safety_.flag(), [this, packet, packet_time_us] {
RTC_DCHECK_RUN_ON(&thread_checker_);
const webrtc::PacketReceiver::DeliveryStatus delivery_result =
call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, packet,
@@ -1877,8 +1877,8 @@
absl::string_view transport_name,
const rtc::NetworkRoute& network_route) {
RTC_DCHECK_RUN_ON(&network_thread_checker_);
- worker_thread_->PostTask(ToQueuedTask(
- task_safety_,
+ worker_thread_->PostTask(SafeTask(
+ task_safety_.flag(),
[this, name = std::string(transport_name), route = network_route] {
RTC_DCHECK_RUN_ON(&thread_checker_);
webrtc::RtpTransportControllerSendInterface* transport =
diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc
index 8511b03..db8ec69 100644
--- a/media/engine/webrtc_voice_engine.cc
+++ b/media/engine/webrtc_voice_engine.cc
@@ -25,7 +25,6 @@
#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"
@@ -2152,8 +2151,8 @@
// consistency it would be good to move the interaction with call_->Receiver()
// to a common implementation and provide a callback on the worker thread
// for the exception case (DELIVERY_UNKNOWN_SSRC) and how retry is attempted.
- worker_thread_->PostTask(ToQueuedTask(task_safety_, [this, packet,
- packet_time_us] {
+ worker_thread_->PostTask(SafeTask(task_safety_.flag(), [this, packet,
+ packet_time_us] {
RTC_DCHECK_RUN_ON(worker_thread_);
webrtc::PacketReceiver::DeliveryStatus delivery_result =
@@ -2232,8 +2231,8 @@
call_->OnAudioTransportOverheadChanged(network_route.packet_overhead);
- worker_thread_->PostTask(ToQueuedTask(
- task_safety_,
+ worker_thread_->PostTask(SafeTask(
+ task_safety_.flag(),
[this, name = std::string(transport_name), route = network_route] {
RTC_DCHECK_RUN_ON(worker_thread_);
call_->GetTransportControllerSend()->OnNetworkRouteChanged(name, route);
diff --git a/modules/audio_device/audio_device_buffer.cc b/modules/audio_device/audio_device_buffer.cc
index c7c31b7..8cc11de 100644
--- a/modules/audio_device/audio_device_buffer.cc
+++ b/modules/audio_device/audio_device_buffer.cc
@@ -477,10 +477,8 @@
// Keep posting new (delayed) tasks until state is changed to kLogStop.
task_queue_.PostDelayedTask(
- ToQueuedTask([this] {
- AudioDeviceBuffer::LogStats(AudioDeviceBuffer::LOG_ACTIVE);
- }),
- time_to_wait_ms);
+ [this] { AudioDeviceBuffer::LogStats(AudioDeviceBuffer::LOG_ACTIVE); },
+ TimeDelta::Millis(time_to_wait_ms));
}
void AudioDeviceBuffer::ResetRecStats() {
diff --git a/net/dcsctp/socket/BUILD.gn b/net/dcsctp/socket/BUILD.gn
index 3278a30..39254e2 100644
--- a/net/dcsctp/socket/BUILD.gn
+++ b/net/dcsctp/socket/BUILD.gn
@@ -229,7 +229,6 @@
"../../../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",
diff --git a/net/dcsctp/timer/task_queue_timeout_test.cc b/net/dcsctp/timer/task_queue_timeout_test.cc
index da01ecf..f360ba7 100644
--- a/net/dcsctp/timer/task_queue_timeout_test.cc
+++ b/net/dcsctp/timer/task_queue_timeout_test.cc
@@ -11,7 +11,6 @@
#include <memory>
-#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/test/mock_task_queue_base.h"
#include "rtc_base/gunit.h"
diff --git a/pc/proxy.h b/pc/proxy.h
index 89a7f51..3877a6f 100644
--- a/pc/proxy.h
+++ b/pc/proxy.h
@@ -66,7 +66,6 @@
#include <utility>
#include "api/scoped_refptr.h"
-#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "rtc_base/event.h"
#include "rtc_base/location.h"
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 478f714..f79ad4e 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -31,7 +31,6 @@
#include "api/sequence_checker.h"
#include "api/stats/rtc_stats.h"
#include "api/stats/rtcstats_objects.h"
-#include "api/task_queue/queued_task.h"
#include "api/units/time_delta.h"
#include "api/video/video_content_type.h"
#include "common_video/include/quality_limitation_reason.h"
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 546a6d6..c183f5f 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -601,7 +601,6 @@
deps = [
":macromagic",
"../api/task_queue",
- "../api/task_queue:to_queued_task",
"system:rtc_export",
]
absl_deps = [
diff --git a/rtc_base/task_queue.cc b/rtc_base/task_queue.cc
index 0b54178..7c972ed 100644
--- a/rtc_base/task_queue.cc
+++ b/rtc_base/task_queue.cc
@@ -29,26 +29,4 @@
return impl_->IsCurrent();
}
-void TaskQueue::PostTask(std::unique_ptr<webrtc::QueuedTask> task) {
- impl_->PostTask(std::move(task));
-}
-
-void TaskQueue::PostDelayedTask(std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds) {
- impl_->PostDelayedTask(std::move(task), milliseconds);
-}
-
-void TaskQueue::PostDelayedHighPrecisionTask(
- std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds) {
- impl_->PostDelayedHighPrecisionTask(std::move(task), milliseconds);
-}
-
-void TaskQueue::PostDelayedTaskWithPrecision(
- webrtc::TaskQueueBase::DelayPrecision precision,
- std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds) {
- impl_->PostDelayedTaskWithPrecision(precision, std::move(task), milliseconds);
-}
-
} // namespace rtc
diff --git a/rtc_base/task_queue.h b/rtc_base/task_queue.h
index b2a08f8..d0c0551 100644
--- a/rtc_base/task_queue.h
+++ b/rtc_base/task_queue.h
@@ -21,7 +21,6 @@
#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/thread_annotations.h"
@@ -93,22 +92,17 @@
webrtc::TaskQueueBase* Get() { return impl_; }
// TODO(tommi): For better debuggability, implement RTC_FROM_HERE.
-
- // Ownership of the task is passed to PostTask.
- void PostTask(std::unique_ptr<webrtc::QueuedTask> task);
- // See webrtc::TaskQueueBase for precision expectations.
- void PostDelayedTask(std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds);
- void PostDelayedHighPrecisionTask(std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds);
- void PostDelayedTaskWithPrecision(
- webrtc::TaskQueueBase::DelayPrecision precision,
- std::unique_ptr<webrtc::QueuedTask> task,
- uint32_t milliseconds);
-
void PostTask(absl::AnyInvocable<void() &&> task) {
impl_->PostTask(std::move(task));
}
+ void PostDelayedTask(absl::AnyInvocable<void() &&> task,
+ webrtc::TimeDelta delay) {
+ impl_->PostDelayedTask(std::move(task), delay);
+ }
+ void PostDelayedHighPrecisionTask(absl::AnyInvocable<void() &&> task,
+ webrtc::TimeDelta delay) {
+ impl_->PostDelayedHighPrecisionTask(std::move(task), delay);
+ }
private:
webrtc::TaskQueueBase* const impl_;
diff --git a/rtc_base/task_queue_unittest.cc b/rtc_base/task_queue_unittest.cc
index bd07a40..693cd4b 100644
--- a/rtc_base/task_queue_unittest.cc
+++ b/rtc_base/task_queue_unittest.cc
@@ -16,11 +16,13 @@
#endif
#include <stdint.h>
+
#include <memory>
#include <utility>
#include <vector>
#include "absl/memory/memory.h"
+#include "api/units/time_delta.h"
#include "rtc_base/event.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/time_utils.h"
@@ -29,6 +31,7 @@
namespace rtc {
namespace {
+using ::webrtc::TimeDelta;
// Noop on all platforms except Windows, where it turns on high precision
// multimedia timers which increases the precision of TimeMillis() while in
// scope.
@@ -66,9 +69,8 @@
webrtc::TaskQueueForTest queue(kQueueName, TaskQueue::Priority::HIGH);
uint32_t start = Time();
- queue.PostDelayedTask(
- webrtc::ToQueuedTask([&event, &queue] { CheckCurrent(&event, &queue); }),
- 3);
+ queue.PostDelayedTask([&event, &queue] { CheckCurrent(&event, &queue); },
+ TimeDelta::Millis(3));
EXPECT_TRUE(event.Wait(1000));
uint32_t end = TimeMillis();
// These tests are a little relaxed due to how "powerful" our test bots can
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index bd14a9f..5f21ffe 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -1563,7 +1563,6 @@
"../api:field_trials_view",
"../api:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
- "../api/task_queue:to_queued_task",
"../rtc_base",
"../rtc_base:logging",
"../rtc_base:macromagic",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index e35e4e3..f082bd3 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -583,7 +583,6 @@
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api/task_queue:pending_task_safety_flag",
- "../../api/task_queue:to_queued_task",
"../../rtc_base",
"../../rtc_base:checks",
"../../rtc_base:ip_address",
@@ -675,7 +674,6 @@
"../../api:media_stream_interface",
"../../api:sequence_checker",
"../../api/task_queue",
- "../../api/task_queue:to_queued_task",
"../../api/video:encoded_image",
"../../api/video:render_resolution",
"../../api/video:video_frame",
diff --git a/sdk/android/src/jni/android_network_monitor.cc b/sdk/android/src/jni/android_network_monitor.cc
index 8b2e6c5..539d414 100644
--- a/sdk/android/src/jni/android_network_monitor.cc
+++ b/sdk/android/src/jni/android_network_monitor.cc
@@ -19,7 +19,6 @@
#endif
#include "api/sequence_checker.h"
-#include "api/task_queue/to_queued_task.h"
#include "rtc_base/checks.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/logging.h"
@@ -631,7 +630,7 @@
void AndroidNetworkMonitor::NotifyConnectionTypeChanged(
JNIEnv* env,
const JavaRef<jobject>& j_caller) {
- network_thread_->PostTask(ToQueuedTask(safety_flag_, [this] {
+ network_thread_->PostTask(SafeTask(safety_flag_, [this] {
RTC_LOG(LS_INFO)
<< "Android network monitor detected connection type change.";
InvokeNetworksChangedCallback();
@@ -654,8 +653,8 @@
const JavaRef<jobject>& j_network_info) {
NetworkInformation network_info =
GetNetworkInformationFromJava(env, j_network_info);
- network_thread_->PostTask(ToQueuedTask(
- safety_flag_, [this, network_info = std::move(network_info)] {
+ network_thread_->PostTask(
+ SafeTask(safety_flag_, [this, network_info = std::move(network_info)] {
OnNetworkConnected_n(network_info);
}));
}
@@ -664,7 +663,7 @@
JNIEnv* env,
const JavaRef<jobject>& j_caller,
jlong network_handle) {
- network_thread_->PostTask(ToQueuedTask(safety_flag_, [this, network_handle] {
+ network_thread_->PostTask(SafeTask(safety_flag_, [this, network_handle] {
OnNetworkDisconnected_n(static_cast<NetworkHandle>(network_handle));
}));
}
@@ -678,9 +677,9 @@
rtc::NetworkPreference preference =
static_cast<rtc::NetworkPreference>(jpreference);
- network_thread_->PostTask(ToQueuedTask(
- safety_flag_,
- [this, type, preference] { OnNetworkPreference_n(type, preference); }));
+ network_thread_->PostTask(SafeTask(safety_flag_, [this, type, preference] {
+ OnNetworkPreference_n(type, preference);
+ }));
}
} // namespace jni
diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc
index bd40d77..c23ab1e 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_wrapper.cc
@@ -12,7 +12,6 @@
#include <utility>
-#include "api/task_queue/to_queued_task.h"
#include "common_video/h264/h264_common.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "modules/video_coding/include/video_error_codes.h"
diff --git a/sdk/objc/native/src/objc_network_monitor.mm b/sdk/objc/native/src/objc_network_monitor.mm
index 3afa2e6..535548c 100644
--- a/sdk/objc/native/src/objc_network_monitor.mm
+++ b/sdk/objc/native/src/objc_network_monitor.mm
@@ -11,8 +11,6 @@
#include "sdk/objc/native/src/objc_network_monitor.h"
#include "absl/strings/string_view.h"
-#include "api/task_queue/to_queued_task.h"
-
#include <algorithm>
#include "rtc_base/logging.h"
@@ -87,7 +85,7 @@
void ObjCNetworkMonitor::OnPathUpdate(
std::map<std::string, rtc::AdapterType, rtc::AbslStringViewCmp> adapter_type_by_name) {
RTC_DCHECK(network_monitor_ != nil);
- thread_->PostTask(ToQueuedTask(safety_flag_, [this, adapter_type_by_name] {
+ thread_->PostTask(SafeTask(safety_flag_, [this, adapter_type_by_name] {
RTC_DCHECK_RUN_ON(thread_);
adapter_type_by_name_ = adapter_type_by_name;
InvokeNetworksChangedCallback();
diff --git a/video/video_stream_decoder_impl.cc b/video/video_stream_decoder_impl.cc
index 91be5a0..fdc79eb 100644
--- a/video/video_stream_decoder_impl.cc
+++ b/video/video_stream_decoder_impl.cc
@@ -12,7 +12,6 @@
#include <memory>
-#include "api/task_queue/queued_task.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/mod_ops.h"
#include "rtc_base/time_utils.h"
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 23dc28a..91e5fb7 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -22,7 +22,6 @@
#include "absl/types/optional.h"
#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
-#include "api/task_queue/queued_task.h"
#include "api/task_queue/task_queue_base.h"
#include "api/video/encoded_image.h"
#include "api/video/i420_buffer.h"