From 701f25ef9dd2b97da2260dabab778ed4ab011047 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 15 Mar 1999 20:27:53 +0000 Subject: Rob Riggs wrote: """ Spec says that on success pthread_create returns 0. It does not say that an error code will be < 0. Linux glibc2 pthread_create() returns ENOMEM (12) when one exceed process limits. (It looks like it should return EAGAIN, but that's another story.) For reference, see: http://www.opengroup.org/onlinepubs/7908799/xsh/pthread_create.html """ [I have a feeling that similar bugs were fixed before; perhaps someone could check that all error checks no check for != 0?] --- Python/thread_pthread.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 0b4041a..fd03e91 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -178,14 +178,14 @@ int PyThread_start_new_thread _P2(func, void (*func) _P((void *)), arg, void *ar #endif ); - if (success >= 0) { + if (success == 0) { #if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D6) || defined(PY_PTHREAD_D7) pthread_detach(&th); #elif defined(PY_PTHREAD_STD) pthread_detach(th); #endif } - return success < 0 ? 0 : 1; + return success != 0 ? 0 : 1; } long PyThread_get_thread_ident _P0() -- cgit v0.12