summaryrefslogtreecommitdiff
path: root/src/common/thread.h
diff options
context:
space:
mode:
authorGravatar Tony Wasserka2015-03-07 15:30:40 +0100
committerGravatar Tony Wasserka2015-03-07 15:30:40 +0100
commit93e32bce72905ac1bd0a5e75066fda5e6b7bf250 (patch)
tree4530e9d8db22955416543899b6c0e59abf8b9732 /src/common/thread.h
parentMerge pull request #630 from archshift/swap (diff)
parentProfiler: Implement QPCClock to get better precision on Win32 (diff)
downloadyuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.gz
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.xz
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.zip
Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
Diffstat (limited to 'src/common/thread.h')
-rw-r--r--src/common/thread.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/common/thread.h b/src/common/thread.h
index eaf1ba00c..a45728e1e 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -24,6 +24,25 @@
24#include <unistd.h> 24#include <unistd.h>
25#endif 25#endif
26 26
27// Support for C++11's thread_local keyword was surprisingly spotty in compilers until very
28// recently. Fortunately, thread local variables have been well supported for compilers for a while,
29// but with semantics supporting only POD types, so we can use a few defines to get some amount of
30// backwards compat support.
31// WARNING: This only works correctly with POD types.
32#if defined(__clang__)
33# if !__has_feature(cxx_thread_local)
34# define thread_local __thread
35# endif
36#elif defined(__GNUC__)
37# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
38# define thread_local __thread
39# endif
40#elif defined(_MSC_VER)
41# if _MSC_VER < 1900
42# define thread_local __declspec(thread)
43# endif
44#endif
45
27namespace Common 46namespace Common
28{ 47{
29 48