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/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