X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Fos_thread.hpp;h=5fbdaabf274e0f51304b209f807b133bcb71d55e;hb=aa135d6ca5642fb2e5c807a1d4df96f5d6b07c98;hp=3aeeee4849551e360bcc4db44335e9251603d415;hpb=c5cd3565d87b910bf5966d5e5c66ce722fcf25ae;p=apitrace diff --git a/common/os_thread.hpp b/common/os_thread.hpp index 3aeeee4..5fbdaab 100644 --- a/common/os_thread.hpp +++ b/common/os_thread.hpp @@ -39,6 +39,24 @@ #include #endif + +/** + * Compiler TLS. + * + * See also: + * - http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Thread_002dLocal.html + * - http://msdn.microsoft.com/en-us/library/9w1sdazb.aspx + */ +#if defined(_MSC_VER) +# define thread_specific __declspec(thread) +#elif defined(__GNUC__) +# define thread_specific __thread +#else +# define thread_specific +# error "Unsupported compiler" +#endif + + namespace os { @@ -330,7 +348,7 @@ private: DWORD id = 0; _native_handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)f, (LPVOID)arg, 0, &id); #else - pthread_create(&_native_handle, NULL, f, arg); + pthread_create(&_native_handle, NULL, ( void *(*) (void *))f, arg); #endif }