diff options
author | Markus Handell <handellm@webrtc.org> | 2022-06-10 14:00:22 +0000 |
---|---|---|
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-06-13 07:27:37 +0000 |
commit | 9a665402d75cea1582ae2f4f5e1b81dc79717a33 (patch) | |
tree | 1fba8fb6e0ad99f2a986700ba16a48555a6fcf57 | |
parent | 610f4cf50231486ccf93dee1f61c6c8acc03da84 (diff) | |
download | webrtc-9a665402d75cea1582ae2f4f5e1b81dc79717a33.tar.gz |
Reland "TaskQueue: unexpose delayed task convenience methods."
This reverts commit 4cd3a0d082d0b9d44fd78eef3d53d4360e99a674.
Reason for revert: Downstream build should be fixed.
Original change's description:
> Revert "TaskQueue: unexpose delayed task convenience methods."
>
> This reverts commit 08bb6295ea1f438a26f8c1ab01769cfa63943756.
>
> Reason for revert: Breaks downstream tests
>
> Original change's description:
> > TaskQueue: unexpose delayed task convenience methods.
> >
> > Bug: webrtc:14165
> > Change-Id: Ieb8580670e9e521580afd68cca6ff631fb6df3f8
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265400
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Auto-Submit: Markus Handell <handellm@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37166}
>
> Bug: webrtc:14165
> Change-Id: Ia7368cf205622be448ec0ead5d22f211aa071a29
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265411
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Björn Terelius <terelius@webrtc.org>
> Auto-Submit: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37167}
Bug: webrtc:14165
Change-Id: I3d963d272e8a1431103a5d5fb4568ccacd81119c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265395
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37186}
-rw-r--r-- | common_video/incoming_video_stream.cc | 4 | ||||
-rw-r--r-- | logging/rtc_event_log/rtc_event_log_impl.cc | 2 | ||||
-rw-r--r-- | modules/audio_device/audio_device_buffer.cc | 4 | ||||
-rw-r--r-- | modules/pacing/task_queue_paced_sender.cc | 5 | ||||
-rw-r--r-- | rtc_base/task_queue.h | 28 | ||||
-rw-r--r-- | rtc_base/task_queue_unittest.cc | 4 | ||||
-rw-r--r-- | test/fake_decoder.cc | 11 | ||||
-rw-r--r-- | test/pc/e2e/test_activities_executor.cc | 7 | ||||
-rw-r--r-- | test/scenario/scenario.cc | 3 | ||||
-rw-r--r-- | test/time_controller/simulated_time_controller_unittest.cc | 3 | ||||
-rw-r--r-- | video/video_send_stream_impl_unittest.cc | 8 |
11 files changed, 29 insertions, 50 deletions
diff --git a/common_video/incoming_video_stream.cc b/common_video/incoming_video_stream.cc index 1511c9f30c..6279f8330d 100644 --- a/common_video/incoming_video_stream.cc +++ b/common_video/incoming_video_stream.cc @@ -57,8 +57,8 @@ void IncomingVideoStream::Dequeue() { if (render_buffers_.HasPendingFrames()) { uint32_t wait_time = render_buffers_.TimeToNextFrameRelease(); - incoming_render_queue_.PostDelayedHighPrecisionTask([this]() { Dequeue(); }, - wait_time); + incoming_render_queue_.PostDelayedHighPrecisionTask( + ToQueuedTask([this]() { Dequeue(); }), wait_time); } } diff --git a/logging/rtc_event_log/rtc_event_log_impl.cc b/logging/rtc_event_log/rtc_event_log_impl.cc index 0766b4a884..c45352b67b 100644 --- a/logging/rtc_event_log/rtc_event_log_impl.cc +++ b/logging/rtc_event_log/rtc_event_log_impl.cc @@ -181,7 +181,7 @@ void RtcEventLogImpl::ScheduleOutput() { 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(output_task, delay); + task_queue_->PostDelayedTask(ToQueuedTask(std::move(output_task)), delay); } } diff --git a/modules/audio_device/audio_device_buffer.cc b/modules/audio_device/audio_device_buffer.cc index 873e5d6088..c7c31b7667 100644 --- a/modules/audio_device/audio_device_buffer.cc +++ b/modules/audio_device/audio_device_buffer.cc @@ -477,7 +477,9 @@ void AudioDeviceBuffer::LogStats(LogState state) { // Keep posting new (delayed) tasks until state is changed to kLogStop. task_queue_.PostDelayedTask( - [this] { AudioDeviceBuffer::LogStats(AudioDeviceBuffer::LOG_ACTIVE); }, + ToQueuedTask([this] { + AudioDeviceBuffer::LogStats(AudioDeviceBuffer::LOG_ACTIVE); + }), time_to_wait_ms); } diff --git a/modules/pacing/task_queue_paced_sender.cc b/modules/pacing/task_queue_paced_sender.cc index 43c4c965e4..ebb67ac014 100644 --- a/modules/pacing/task_queue_paced_sender.cc +++ b/modules/pacing/task_queue_paced_sender.cc @@ -317,8 +317,9 @@ void TaskQueuePacedSender::MaybeProcessPackets( } task_queue_.PostDelayedTaskWithPrecision( - precision, - [this, next_send_time]() { MaybeProcessPackets(next_send_time); }, + precision, ToQueuedTask([this, next_send_time]() { + MaybeProcessPackets(next_send_time); + }), time_to_next_process.RoundUpTo(TimeDelta::Millis(1)).ms<uint32_t>()); next_process_time_ = next_send_time; } diff --git a/rtc_base/task_queue.h b/rtc_base/task_queue.h index ef97646988..fe381b993e 100644 --- a/rtc_base/task_queue.h +++ b/rtc_base/task_queue.h @@ -115,34 +115,6 @@ class RTC_LOCKABLE RTC_EXPORT TaskQueue { void PostTask(Closure&& closure) { PostTask(webrtc::ToQueuedTask(std::forward<Closure>(closure))); } - template <class Closure, - typename std::enable_if<!std::is_convertible< - Closure, - std::unique_ptr<webrtc::QueuedTask>>::value>::type* = nullptr> - void PostDelayedTask(Closure&& closure, uint32_t milliseconds) { - PostDelayedTask(webrtc::ToQueuedTask(std::forward<Closure>(closure)), - milliseconds); - } - template <class Closure, - typename std::enable_if<!std::is_convertible< - Closure, - std::unique_ptr<webrtc::QueuedTask>>::value>::type* = nullptr> - void PostDelayedHighPrecisionTask(Closure&& closure, uint32_t milliseconds) { - PostDelayedHighPrecisionTask( - webrtc::ToQueuedTask(std::forward<Closure>(closure)), milliseconds); - } - template <class Closure, - typename std::enable_if<!std::is_convertible< - Closure, - std::unique_ptr<webrtc::QueuedTask>>::value>::type* = nullptr> - void PostDelayedTaskWithPrecision( - webrtc::TaskQueueBase::DelayPrecision precision, - Closure&& closure, - uint32_t milliseconds) { - PostDelayedTaskWithPrecision( - precision, webrtc::ToQueuedTask(std::forward<Closure>(closure)), - milliseconds); - } private: webrtc::TaskQueueBase* const impl_; diff --git a/rtc_base/task_queue_unittest.cc b/rtc_base/task_queue_unittest.cc index 0c79858630..bd07a408a6 100644 --- a/rtc_base/task_queue_unittest.cc +++ b/rtc_base/task_queue_unittest.cc @@ -66,7 +66,9 @@ TEST(TaskQueueTest, DISABLED_PostDelayedHighRes) { webrtc::TaskQueueForTest queue(kQueueName, TaskQueue::Priority::HIGH); uint32_t start = Time(); - queue.PostDelayedTask([&event, &queue] { CheckCurrent(&event, &queue); }, 3); + queue.PostDelayedTask( + webrtc::ToQueuedTask([&event, &queue] { CheckCurrent(&event, &queue); }), + 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/test/fake_decoder.cc b/test/fake_decoder.cc index 72783bcd0c..6fa6596953 100644 --- a/test/fake_decoder.cc +++ b/test/fake_decoder.cc @@ -61,12 +61,11 @@ int32_t FakeDecoder::Decode(const EncodedImage& input, if (decode_delay_ms_ == 0 || !task_queue_) { callback_->Decoded(frame); } else { - task_queue_->PostDelayedHighPrecisionTask( - [frame, this]() { - VideoFrame copy = frame; - callback_->Decoded(copy); - }, - decode_delay_ms_); + task_queue_->PostDelayedHighPrecisionTask(ToQueuedTask([frame, this]() { + VideoFrame copy = frame; + callback_->Decoded(copy); + }), + decode_delay_ms_); } return WEBRTC_VIDEO_CODEC_OK; diff --git a/test/pc/e2e/test_activities_executor.cc b/test/pc/e2e/test_activities_executor.cc index 68f6760bba..4454695ce6 100644 --- a/test/pc/e2e/test_activities_executor.cc +++ b/test/pc/e2e/test_activities_executor.cc @@ -103,9 +103,10 @@ void TestActivitiesExecutor::PostActivity(ScheduledActivity activity) { return; } - task_queue_->PostDelayedTask( - [activity, start_time, this]() { activity.func(Now() - start_time); }, - remaining_delay.ms()); + task_queue_->PostDelayedTask(ToQueuedTask([activity, start_time, this]() { + activity.func(Now() - start_time); + }), + remaining_delay.ms()); } Timestamp TestActivitiesExecutor::Now() const { diff --git a/test/scenario/scenario.cc b/test/scenario/scenario.cc index 239aad9dfe..3c3a106cd2 100644 --- a/test/scenario/scenario.cc +++ b/test/scenario/scenario.cc @@ -266,7 +266,8 @@ void Scenario::Post(std::function<void()> function) { void Scenario::At(TimeDelta offset, std::function<void()> function) { RTC_DCHECK_GT(offset, TimeSinceStart()); - task_queue_.PostDelayedTask(function, TimeUntilTarget(offset).ms()); + task_queue_.PostDelayedTask(ToQueuedTask(std::move(function)), + TimeUntilTarget(offset).ms()); } void Scenario::RunFor(TimeDelta duration) { diff --git a/test/time_controller/simulated_time_controller_unittest.cc b/test/time_controller/simulated_time_controller_unittest.cc index 51bdf0fd08..dd5774078c 100644 --- a/test/time_controller/simulated_time_controller_unittest.cc +++ b/test/time_controller/simulated_time_controller_unittest.cc @@ -120,7 +120,8 @@ TEST(SimulatedTimeControllerTest, DelayTaskRunOnTime) { "TestQueue", TaskQueueFactory::Priority::NORMAL)); bool delay_task_executed = false; - task_queue.PostDelayedTask([&] { delay_task_executed = true; }, 10); + task_queue.PostDelayedTask(ToQueuedTask([&] { delay_task_executed = true; }), + 10); time_simulation.AdvanceTime(TimeDelta::Millis(10)); EXPECT_TRUE(delay_task_executed); diff --git a/video/video_send_stream_impl_unittest.cc b/video/video_send_stream_impl_unittest.cc index e639aaf8cf..4e4eba9743 100644 --- a/video/video_send_stream_impl_unittest.cc +++ b/video/video_send_stream_impl_unittest.cc @@ -867,13 +867,13 @@ TEST_F(VideoSendStreamImplTest, DisablesPaddingOnPausedEncoder) { rtc::Event done; test_queue_.PostDelayedTask( - [&] { + ToQueuedTask([&] { // No padding supposed to be sent for paused observer EXPECT_EQ(0, padding_bitrate); testing::Mock::VerifyAndClearExpectations(&bitrate_allocator_); vss_impl->Stop(); done.Set(); - }, + }), 5000); // Pause the test suite so that the last delayed task executes. @@ -905,11 +905,11 @@ TEST_F(VideoSendStreamImplTest, KeepAliveOnDroppedFrame) { rtc::Event done; test_queue_.PostDelayedTask( - [&] { + ToQueuedTask([&] { testing::Mock::VerifyAndClearExpectations(&bitrate_allocator_); vss_impl->Stop(); done.Set(); - }, + }), 2000); ASSERT_TRUE(done.Wait(5000)); } |