From: Richard Oudkerk Date: Tue, 1 Jan 2013 17:25:09 +0000 (+0000) Subject: Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy. X-Git-Tag: v2.7.4rc1~164^2~124 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7450a81970c0906025fd92017b34676e70c5a767;p=python Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy. --- diff --git a/Misc/NEWS b/Misc/NEWS index 8bfa569017..ff91c7157e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -175,6 +175,8 @@ Core and Builtins Library ------- +- Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy. + - Issue 10527: make multiprocessing use poll() instead of select() if available. - Issue #16485: Fix file descriptor not being closed if file header patching diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c index 5bda1ce12a..b9e8f345fb 100644 --- a/Modules/_multiprocessing/semaphore.c +++ b/Modules/_multiprocessing/semaphore.c @@ -197,6 +197,13 @@ semlock_release(SemLockObject *self, PyObject *args) #define SEM_GETVALUE(sem, pval) sem_getvalue(sem, pval) #define SEM_UNLINK(name) sem_unlink(name) +/* OS X 10.4 defines SEM_FAILED as -1 instead of (sem_t *)-1; this gives + compiler warnings, and (potentially) undefined behaviour. */ +#ifdef __APPLE__ +# undef SEM_FAILED +# define SEM_FAILED ((sem_t *)-1) +#endif + #ifndef HAVE_SEM_UNLINK # define sem_unlink(name) 0 #endif