50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
-
|
{
#ifndef _WIN32
void *ret;
if (pthread_join(thread, &ret))
return NO;
/* FIXME: Do we need a way to differentiate? */
return (ret != PTHREAD_CANCELED ? YES : NO);
#else
if (WaitForSingleObject(thread, INFINITE))
return NO;
CloseHandle(thread);
|
159
160
161
162
163
164
165
|
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
+
+
+
+
+
+
+
+
+
+
|
#ifndef _WIN32
return (pthread_setspecific(key, p) ? NO : YES);
#else
return (TlsSetValue(key, p) ? YES : NO);
#endif
}
static OF_INLINE BOOL
of_tlskey_free(of_tlskey_t key)
{
#ifndef _WIN32
return (pthread_key_delete(key) ? NO : YES);
#else
return (TlsFree(key) ? YES : NO);
#endif
}
|