[clangd] Set thread priority on Windows
authorIlya Biryukov <ibiryukov@google.com>
Wed, 27 Feb 2019 10:16:03 +0000 (10:16 +0000)
committerIlya Biryukov <ibiryukov@google.com>
Wed, 27 Feb 2019 10:16:03 +0000 (10:16 +0000)
Reviewers: kadircet, gribozavr

Reviewed By: kadircet, gribozavr

Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58683

llvm-svn: 354957

clang-tools-extra/clangd/Threading.cpp

index 695e30d..733267c 100644 (file)
@@ -9,6 +9,8 @@
 #include <pthread.h>
 #elif defined(__APPLE__)
 #include <sys/resource.h>
+#elif defined (_WIN32)
+#include <Windows.h>
 #endif
 
 namespace clang {
@@ -129,6 +131,11 @@ void setCurrentThreadPriority(ThreadPriority Priority) {
               Priority == ThreadPriority::Low && !AvoidThreadStarvation
                   ? PRIO_DARWIN_BG
                   : 0);
+#elif defined(_WIN32)
+  SetThreadPriority(GetCurrentThread(),
+                    Priority == ThreadPriority::Low && !AvoidThreadStarvation
+                        ? THREAD_MODE_BACKGROUND_BEGIN
+                        : THREAD_MODE_BACKGROUND_END);
 #endif
 }