@@ -24,7 +24,8 @@ class RepeatingTask {
2424 TimeDelta first_delay,
2525 absl::AnyInvocable<TimeDelta()> task,
2626 Clock* clock,
27- rtc::scoped_refptr<PendingTaskSafetyFlag> alive_flag);
27+ rtc::scoped_refptr<PendingTaskSafetyFlag> alive_flag,
28+ const Location& location);
2829 RepeatingTask (RepeatingTask&&) = default ;
2930 RepeatingTask& operator =(RepeatingTask&&) = delete ;
3031 ~RepeatingTask () = default ;
@@ -35,6 +36,7 @@ class RepeatingTask {
3536 TaskQueueBase* const task_queue_;
3637 const TaskQueueBase::DelayPrecision precision_;
3738 Clock* const clock_;
39+ const Location location_;
3840 absl::AnyInvocable<TimeDelta()> task_;
3941 // This is always finite.
4042 Timestamp next_run_time_ RTC_GUARDED_BY (task_queue_);
@@ -48,10 +50,12 @@ RepeatingTask::RepeatingTask(
4850 TimeDelta first_delay,
4951 absl::AnyInvocable<TimeDelta()> task,
5052 Clock* clock,
51- rtc::scoped_refptr<PendingTaskSafetyFlag> alive_flag)
53+ rtc::scoped_refptr<PendingTaskSafetyFlag> alive_flag,
54+ const Location& location)
5255 : task_queue_(task_queue),
5356 precision_ (precision),
5457 clock_(clock),
58+ location_(location),
5559 task_(std::move(task)),
5660 next_run_time_(clock_->CurrentTime () + first_delay),
5761 alive_flag_(std::move(alive_flag)) {}
@@ -75,8 +79,8 @@ void RepeatingTask::operator()() && {
7579 delay -= lost_time;
7680 delay = std::max (delay, TimeDelta::Zero ());
7781
78- task_queue_->PostDelayedTaskWithPrecision (precision_, std::move (*this ),
79- delay );
82+ task_queue_->PostDelayedTaskWithPrecision (precision_, std::move (*this ), delay,
83+ location_ );
8084}
8185
8286} // namespace
@@ -85,11 +89,14 @@ RepeatingTaskHandle RepeatingTaskHandle::Start(
8589 TaskQueueBase* task_queue,
8690 absl::AnyInvocable<TimeDelta()> closure,
8791 TaskQueueBase::DelayPrecision precision,
88- Clock* clock) {
92+ Clock* clock,
93+ const Location& location) {
8994 auto alive_flag = PendingTaskSafetyFlag::CreateDetached ();
9095 webrtc_repeating_task_impl::RepeatingTaskHandleDTraceProbeStart ();
91- task_queue->PostTask (RepeatingTask (task_queue, precision, TimeDelta::Zero (),
92- std::move (closure), clock, alive_flag));
96+ task_queue->PostTask (
97+ RepeatingTask (task_queue, precision, TimeDelta::Zero (),
98+ std::move (closure), clock, alive_flag, location),
99+ location);
93100 return RepeatingTaskHandle (std::move (alive_flag));
94101}
95102
@@ -100,14 +107,15 @@ RepeatingTaskHandle RepeatingTaskHandle::DelayedStart(
100107 TimeDelta first_delay,
101108 absl::AnyInvocable<TimeDelta()> closure,
102109 TaskQueueBase::DelayPrecision precision,
103- Clock* clock) {
110+ Clock* clock,
111+ const Location& location) {
104112 auto alive_flag = PendingTaskSafetyFlag::CreateDetached ();
105113 webrtc_repeating_task_impl::RepeatingTaskHandleDTraceProbeDelayedStart ();
106114 task_queue->PostDelayedTaskWithPrecision (
107115 precision,
108116 RepeatingTask (task_queue, precision, first_delay, std::move (closure),
109- clock, alive_flag),
110- first_delay);
117+ clock, alive_flag, location ),
118+ first_delay, location );
111119 return RepeatingTaskHandle (std::move (alive_flag));
112120}
113121
0 commit comments