From: Guido van Rossum Date: Mon, 15 Mar 1999 20:27:53 +0000 (+0000) Subject: Rob Riggs wrote: X-Git-Tag: v1.5.2c1~152 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=701f25ef9dd2b97da2260dabab778ed4ab011047;p=python 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?] --- diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 0b4041a3a9..fd03e91611 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()