aboutsummaryrefslogtreecommitdiffstats
path: root/LibOVR/Src/Kernel/OVR_Threads.h
diff options
context:
space:
mode:
Diffstat (limited to 'LibOVR/Src/Kernel/OVR_Threads.h')
-rw-r--r--LibOVR/Src/Kernel/OVR_Threads.h32
1 files changed, 25 insertions, 7 deletions
diff --git a/LibOVR/Src/Kernel/OVR_Threads.h b/LibOVR/Src/Kernel/OVR_Threads.h
index 301b84f..1157325 100644
--- a/LibOVR/Src/Kernel/OVR_Threads.h
+++ b/LibOVR/Src/Kernel/OVR_Threads.h
@@ -6,16 +6,16 @@ Content : Contains thread-related (safe) functionality
Created : September 19, 2012
Notes :
-Copyright : Copyright 2014 Oculus VR, Inc. All Rights reserved.
+Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
-Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
+Licensed under the Oculus VR Rift SDK License Version 3.2 (the "License");
you may not use the Oculus VR Rift SDK except in compliance with the License,
which is provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
You may obtain a copy of the License at
-http://www.oculusvr.com/licenses/LICENSE-3.1
+http://www.oculusvr.com/licenses/LICENSE-3.2
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
distributed under the License is distributed on an "AS IS" BASIS,
@@ -325,19 +325,35 @@ public:
// and set to the return value if Run function after the thread is finished.
inline int GetExitCode() const { return ExitCode; }
// Returns an OS handle
-#if defined(OVR_OS_WIN32)
+#if defined(OVR_OS_MS)
void* GetOSHandle() const { return ThreadHandle; }
#else
pthread_t GetOSHandle() const { return ThreadHandle; }
#endif
-#if defined(OVR_OS_WIN32)
+#if defined(OVR_OS_MS)
ThreadId GetThreadId() const { return IdValue; }
#else
ThreadId GetThreadId() const { return (ThreadId)GetOSHandle(); }
#endif
- static int GetOSPriority(ThreadPriority);
+ // Returns the platform-specific equivalent const that corresponds to the given ThreadPriority.
+ static int GetOSPriority(ThreadPriority);
+ static ThreadPriority GetOVRPriority(int osPriority); // May return a value outside the ThreadPriority enum range in unusual cases.
+
+ // Gets this instance's priority.
+ ThreadPriority GetPriority();
+
+ // Gets the current thread's priority.
+ static ThreadPriority GetCurrentPriority();
+
+ // Sets this instance's thread's priority.
+ // Some platforms (e.g. Unix) don't let you set thread priorities unless you have root privileges/
+ bool SetPriority(ThreadPriority);
+
+ // Sets the current thread's priority.
+ static bool SetCurrentPriority(ThreadPriority);
+
// *** Sleep
// Sleep secs seconds
@@ -352,6 +368,8 @@ public:
private:
#if defined(OVR_OS_WIN32)
friend unsigned WINAPI Thread_Win32StartFn(void *phandle);
+#elif defined(OVR_OS_MS) // Any other Microsoft OS...
+ friend DWORD WINAPI Thread_Win32StartFn(void *phandle);
#else
friend void *Thread_PthreadStartFn(void * phandle);
@@ -369,7 +387,7 @@ protected:
int Processor;
ThreadPriority Priority;
-#if defined(OVR_OS_WIN32)
+#if defined(OVR_OS_MS)
void* ThreadHandle;
volatile ThreadId IdValue;