Move rtc::NewClosure into own build target as ToQueuedTask
to make it usable without need to depend on rtc_task_queue
Bug: webrtc:10191
Change-Id: I2ae1445cf5d498aa6928d66b6823f2f940987767
Reviewed-on: https://webrtc-review.googlesource.com/c/125084
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26942}
diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn
index 333c872..f6bbbc3 100644
--- a/api/task_queue/BUILD.gn
+++ b/api/task_queue/BUILD.gn
@@ -42,8 +42,8 @@
deps = [
":task_queue",
"../../rtc_base:rtc_event",
- "../../rtc_base:rtc_task_queue_api",
"../../rtc_base:timeutils",
+ "../../rtc_base/task_utils:to_queued_task",
"../../test:test_support",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings",
diff --git a/api/task_queue/task_queue_test.cc b/api/task_queue/task_queue_test.cc
index b6f04cd..e78dbd2 100644
--- a/api/task_queue/task_queue_test.cc
+++ b/api/task_queue/task_queue_test.cc
@@ -12,7 +12,7 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "rtc_base/event.h"
-#include "rtc_base/task_queue.h"
+#include "rtc_base/task_utils/to_queued_task.h"
#include "rtc_base/time_utils.h"
namespace webrtc {
@@ -40,7 +40,7 @@
EXPECT_FALSE(queue->IsCurrent());
EXPECT_FALSE(TaskQueueBase::Current());
- queue->PostTask(rtc::NewClosure([&event, &queue] {
+ queue->PostTask(ToQueuedTask([&event, &queue] {
EXPECT_TRUE(queue->IsCurrent());
event.Set();
}));
@@ -74,7 +74,7 @@
rtc::Event event;
auto queue = CreateTaskQueue(factory, "PostDelayedZero");
- queue->PostDelayedTask(rtc::NewClosure([&event] { event.Set(); }), 0);
+ queue->PostDelayedTask(ToQueuedTask([&event] { event.Set(); }), 0);
EXPECT_TRUE(event.Wait(1000));
}
@@ -83,8 +83,8 @@
rtc::Event event;
auto queue = CreateTaskQueue(factory, "PostFromQueue");
- queue->PostTask(rtc::NewClosure([&event, &queue] {
- queue->PostTask(rtc::NewClosure([&event] { event.Set(); }));
+ queue->PostTask(ToQueuedTask([&event, &queue] {
+ queue->PostTask(ToQueuedTask([&event] { event.Set(); }));
}));
EXPECT_TRUE(event.Wait(1000));
}
@@ -96,7 +96,7 @@
CreateTaskQueue(factory, "PostDelayed", TaskQueueFactory::Priority::HIGH);
int64_t start = rtc::TimeMillis();
- queue->PostDelayedTask(rtc::NewClosure([&event, &queue] {
+ queue->PostDelayedTask(ToQueuedTask([&event, &queue] {
EXPECT_TRUE(queue->IsCurrent());
event.Set();
}),
@@ -117,7 +117,7 @@
std::vector<rtc::Event> events(100);
for (int i = 0; i < 100; ++i) {
rtc::Event* event = &events[i];
- queue->PostDelayedTask(rtc::NewClosure([event, &queue] {
+ queue->PostDelayedTask(ToQueuedTask([event, &queue] {
EXPECT_TRUE(queue->IsCurrent());
event->Set();
}),
@@ -134,8 +134,7 @@
rtc::Event deleted;
auto queue = CreateTaskQueue(factory, "PostDelayedAfterDestruct");
queue->PostDelayedTask(
- rtc::NewClosure([&run] { run.Set(); }, [&deleted] { deleted.Set(); }),
- 100);
+ ToQueuedTask([&run] { run.Set(); }, [&deleted] { deleted.Set(); }), 100);
// Destroy the queue.
queue = nullptr;
// Task might outlive the TaskQueue, but still should be deleted.
@@ -206,11 +205,11 @@
// case inside of the libevent queue implementation.
queue->PostTask(
- rtc::NewClosure([&event] { event.Wait(rtc::Event::kForever); }));
+ ToQueuedTask([&event] { event.Wait(rtc::Event::kForever); }));
for (int i = 0; i < kTaskCount; ++i)
queue->PostTask(
- rtc::NewClosure([&tasks_executed] { ++tasks_executed; },
- [&tasks_cleaned_up] { ++tasks_cleaned_up; }));
+ ToQueuedTask([&tasks_executed] { ++tasks_executed; },
+ [&tasks_cleaned_up] { ++tasks_cleaned_up; }));
event.Set(); // Unblock the first task.
}
@@ -237,11 +236,11 @@
auto queue = CreateTaskQueue(factory, "PostTwoWithSharedUnprotectedState");
rtc::Event done;
- queue->PostTask(rtc::NewClosure([&state, &queue, &done] {
+ queue->PostTask(ToQueuedTask([&state, &queue, &done] {
// Post tasks from queue to guarantee, that 1st task won't be
// executed before the second one will be posted.
- queue->PostTask(rtc::NewClosure([&state] { state.state = 1; }));
- queue->PostTask(rtc::NewClosure([&state, &done] {
+ queue->PostTask(ToQueuedTask([&state] { state.state = 1; }));
+ queue->PostTask(ToQueuedTask([&state, &done] {
EXPECT_EQ(state.state, 1);
done.Set();
}));