github.com/bir3/gocompiler@v0.9.2202/src/cmd/cgo/internal/testtls/tls.c (about) 1 // Copyright 2013 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 #include <stddef.h> 6 7 #if __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) 8 9 // Mingw seems not to have threads.h, so we use the _Thread_local keyword rather 10 // than the thread_local macro. 11 static _Thread_local int tls; 12 13 const char * 14 checkTLS() { 15 return NULL; 16 } 17 18 void 19 setTLS(int v) 20 { 21 tls = v; 22 } 23 24 int 25 getTLS() 26 { 27 return tls; 28 } 29 30 #else 31 32 const char * 33 checkTLS() { 34 return "_Thread_local requires C11 and not __STDC_NO_THREADS__"; 35 } 36 37 void 38 setTLS(int v) { 39 } 40 41 int 42 getTLS() 43 { 44 return 0; 45 } 46 47 #endif