… | |
… | |
166 | #define respipe_write(a,b,c) write ((a), (b), (c)) |
166 | #define respipe_write(a,b,c) write ((a), (b), (c)) |
167 | #define respipe_close(a) close ((a)) |
167 | #define respipe_close(a) close ((a)) |
168 | |
168 | |
169 | #endif |
169 | #endif |
170 | |
170 | |
|
|
171 | #if __linux && __GNUC__ >= 4 && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 9 |
|
|
172 | # define X_TLS_DECLARE(varname) __thread void *varname |
|
|
173 | # define X_TLS_INIT(varname) |
|
|
174 | # define X_TLS_SET(varname,value) varname = (value) |
|
|
175 | # define X_TLS_GET(varname) varname |
|
|
176 | #else |
|
|
177 | # define X_TLS_DECLARE(varname) pthread_key_t varname |
|
|
178 | # define X_TLS_INIT(varname) do { if (pthread_key_create (&(varname), 0)) abort (); } while (0) |
|
|
179 | # define X_TLS_SET(varname,value) pthread_setspecific (varname, (value)) |
|
|
180 | # define X_TLS_GET(varname) pthread_getspecific (varname) |
171 | #endif |
181 | #endif |
172 | |
182 | |
|
|
183 | #endif |
|
|
184 | |