added _Thread_local for gcc, clang, and ms compilers