diff options
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 51 |
1 files changed, 23 insertions, 28 deletions
@@ -142,36 +142,9 @@ pthread_self (void) * ------------------------------------------------------ */ { - pthread_t self = NULL; - DWORD lastErr; + pthread_t self; - /* - * Need to ensure there always is a self. - * - * The following call to pthread_getspecific uses TlsGetValue. - * Win32 functions that return indications of failure call SetLastError when - * they fail. They generally do not call SetLastError when they succeed. The - * TlsGetValue function is an exception to this general rule. The TlsGetValue - * function calls SetLastError to clear a thread's last error when it - * succeeds. - * - * We restore the last error if TlsGetValue succeeds. - */ - lastErr = GetLastError(); self = (pthread_t) pthread_getspecific (ptw32_selfThreadKey); - if (GetLastError() == NO_ERROR) - { - SetLastError(lastErr); - } - else - { - /* - * What else can we do? GetLastError will tell the - * the caller more but this is not supposed to - * happen. - */ - return(NULL); - } if (self == NULL) { @@ -265,6 +238,28 @@ pthread_equal (pthread_t t1, pthread_t t2) } /* pthread_equal */ +int +pthread_setconcurrency(int level) +{ + if (level < 0) + { + return EINVAL; + } + else + { + ptw32_concurrency = level; + return 0; + } +} + + +int +pthread_getconcurrency(void) +{ + return ptw32_concurrency; +} + + static int ptw32_cancelable_wait (HANDLE waitHandle, DWORD timeout) /* |