Nazara now use thread_local (GCC 4.8 is required)

Former-commit-id: 09c0c24ede4a6860acfc71b9532f286bd1381dda
This commit is contained in:
Lynix 2013-05-03 02:55:26 +02:00
parent 5aeb9d63b8
commit 780bcf122c
2 changed files with 2 additions and 9 deletions

View File

@ -36,22 +36,18 @@
#include <Nazara/Core/Config.hpp>
///TODO: Rajouter des tests d'identification de compilateurs
// NAZARA_THREADLOCAL n'existe qu'en attendant le support complet de thread_local
#if defined(__BORLANDC__)
#define NAZARA_COMPILER_BORDLAND
#define NAZARA_DEPRECATED(txt)
#define NAZARA_FUNCTION __FUNC__
#define NAZARA_THREADLOCAL __declspec(thread)
#elif defined(__clang__)
#define NAZARA_COMPILER_CLANG
#define NAZARA_DEPRECATED(txt) __attribute__((__deprecated__(txt)))
#define NAZARA_FUNCTION __PRETTY_FUNCTION__
#define NAZARA_THREADLOCAL __declspec(thread)
#elif defined(__GNUC__) || defined(__MINGW32__)
#define NAZARA_COMPILER_GCC
#define NAZARA_DEPRECATED(txt) __attribute__((__deprecated__(txt)))
#define NAZARA_FUNCTION __PRETTY_FUNCTION__
#define NAZARA_THREADLOCAL __thread
#ifdef __MINGW32__
#define NAZARA_COMPILER_MINGW
@ -63,17 +59,14 @@
#define NAZARA_COMPILER_INTEL
#define NAZARA_DEPRECATED(txt)
#define NAZARA_FUNCTION __FUNCTION__
#define NAZARA_THREADLOCAL __thread
#elif defined(_MSC_VER)
#define NAZARA_COMPILER_MSVC
#define NAZARA_DEPRECATED(txt) __declspec(deprecated(txt))
#define NAZARA_FUNCTION __FUNCSIG__
#define NAZARA_THREADLOCAL __declspec(thread)
#else
#define NAZARA_COMPILER_UNKNOWN
#define NAZARA_DEPRECATED(txt)
#define NAZARA_FUNCTION __func__ // __func__ est standard depuis le C++11
#define NAZARA_THREADLOCAL thread_local
#error This compiler is not fully supported
#endif

View File

@ -22,8 +22,8 @@
namespace
{
NAZARA_THREADLOCAL const NzContext* currentContext = nullptr;
NAZARA_THREADLOCAL const NzContext* threadContext = nullptr;
thread_local const NzContext* currentContext = nullptr;
thread_local const NzContext* threadContext = nullptr;
std::vector<NzContext*> contexts;