From 07b047012ab90dad9f2ae8825eaba646c893eaca Mon Sep 17 00:00:00 2001 From: Wei Chen Date: Fri, 9 Dec 2022 18:08:50 +0800 Subject: [PATCH] [iOS]Fix map loading laggy on M1 simulator (#581) Co-authored-by: wei chen --- platform/darwin/src/nsthread.mm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/platform/darwin/src/nsthread.mm b/platform/darwin/src/nsthread.mm index 9af9cf3cc..8a3ed1743 100644 --- a/platform/darwin/src/nsthread.mm +++ b/platform/darwin/src/nsthread.mm @@ -22,7 +22,7 @@ void setCurrentThreadName(const std::string& name) { } void makeThreadLowPriority() { - [[NSThread currentThread] setThreadPriority:0.0]; + [NSThread currentThread].qualityOfService = NSQualityOfServiceUtility; } void setCurrentThreadPriority(double priority) { @@ -30,8 +30,16 @@ void setCurrentThreadPriority(double priority) { Log::Warning(Event::General, "Invalid thread priority was provided"); return; } - - [[NSThread currentThread] setThreadPriority:priority]; + + if (priority < 0.25) { + [NSThread currentThread].qualityOfService = NSQualityOfServiceBackground; + } else if (priority < 0.5) { + [NSThread currentThread].qualityOfService = NSQualityOfServiceUtility; + } else if (priority < 0.75) { + [NSThread currentThread].qualityOfService = NSQualityOfServiceUserInitiated; + } else { + [NSThread currentThread].qualityOfService = NSQualityOfServiceUserInteractive; + } } void attachThread() {