diff --git a/rtc_base/task_queue.cc b/rtc_base/task_queue.cc index f0dbdb3ae0..0b54178405 100644 --- a/rtc_base/task_queue.cc +++ b/rtc_base/task_queue.cc @@ -30,18 +30,25 @@ bool TaskQueue::IsCurrent() const { } void TaskQueue::PostTask(std::unique_ptr task) { - return impl_->PostTask(std::move(task)); + impl_->PostTask(std::move(task)); } void TaskQueue::PostDelayedTask(std::unique_ptr task, uint32_t milliseconds) { - return impl_->PostDelayedTask(std::move(task), milliseconds); + impl_->PostDelayedTask(std::move(task), milliseconds); } void TaskQueue::PostDelayedHighPrecisionTask( std::unique_ptr task, uint32_t milliseconds) { - return impl_->PostDelayedHighPrecisionTask(std::move(task), milliseconds); + impl_->PostDelayedHighPrecisionTask(std::move(task), milliseconds); +} + +void TaskQueue::PostDelayedTaskWithPrecision( + webrtc::TaskQueueBase::DelayPrecision precision, + std::unique_ptr 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 4ad3fedd95..ef97646988 100644 --- a/rtc_base/task_queue.h +++ b/rtc_base/task_queue.h @@ -100,6 +100,10 @@ class RTC_LOCKABLE RTC_EXPORT TaskQueue { uint32_t milliseconds); void PostDelayedHighPrecisionTask(std::unique_ptr task, uint32_t milliseconds); + void PostDelayedTaskWithPrecision( + webrtc::TaskQueueBase::DelayPrecision precision, + std::unique_ptr task, + uint32_t milliseconds); // std::enable_if is used here to make sure that calls to PostTask() with // std::unique_ptr would not end up being @@ -127,6 +131,18 @@ class RTC_LOCKABLE RTC_EXPORT TaskQueue { PostDelayedHighPrecisionTask( webrtc::ToQueuedTask(std::forward(closure)), milliseconds); } + template >::value>::type* = nullptr> + void PostDelayedTaskWithPrecision( + webrtc::TaskQueueBase::DelayPrecision precision, + Closure&& closure, + uint32_t milliseconds) { + PostDelayedTaskWithPrecision( + precision, webrtc::ToQueuedTask(std::forward(closure)), + milliseconds); + } private: webrtc::TaskQueueBase* const impl_;