Index: webrtc/base/task_queue_libevent.cc |
diff --git a/webrtc/base/task_queue_libevent.cc b/webrtc/base/task_queue_libevent.cc |
index c6ce5b3baf3e301550308d407a4866dfd05f8abb..9a2f9e8b285b1ed4559b8a5ab165931631c3c975 100644 |
--- a/webrtc/base/task_queue_libevent.cc |
+++ b/webrtc/base/task_queue_libevent.cc |
@@ -84,6 +84,19 @@ void EventAssign(struct event* ev, |
RTC_CHECK_EQ(0, event_base_set(base, ev)); |
#endif |
} |
+ |
+ThreadPriority TaskQueuePriorityToThreadPriority(TaskQueue::Priority priority) { |
+ switch (priority) { |
+ case TaskQueue::HIGH: |
+ return kRealtimePriority; |
+ case TaskQueue::LOW: |
+ return kLowPriority; |
+ case TaskQueue::NORMAL: |
+ default: |
the sun
2017/02/24 09:03:43
If compiler won't warn about an unhandled "case",
tommi
2017/02/24 17:34:41
Done.
|
+ break; |
+ } |
+ return kNormalPriority; |
+} |
} // namespace |
struct TaskQueue::QueueContext { |
@@ -201,10 +214,13 @@ class TaskQueue::SetTimerTask : public QueuedTask { |
const uint32_t posted_; |
}; |
-TaskQueue::TaskQueue(const char* queue_name) |
+TaskQueue::TaskQueue(const char* queue_name, Priority priority /*= NORMAL*/) |
: event_base_(event_base_new()), |
wakeup_event_(new event()), |
- thread_(&TaskQueue::ThreadMain, this, queue_name) { |
+ thread_(&TaskQueue::ThreadMain, |
+ this, |
+ queue_name, |
+ TaskQueuePriorityToThreadPriority(priority)) { |
RTC_DCHECK(queue_name); |
int fds[2]; |
RTC_CHECK(pipe(fds) == 0); |