Mercurial > cpython-lru_cache-weakref
diff Python/thread_solaris.h @ 4371:c277ee8c669c legacy-trunk
Sjoerd's thread changes (including down_sema typo fix).
Note: waitflag not supported on NT.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 08 Oct 1996 14:17:53 +0000 |
| parents | 33bf382c2b1d |
| children | 65d2d8e67da3 |
line wrap: on
line diff
--- a/Python/thread_solaris.h Tue Oct 08 14:15:25 1996 +0000 +++ b/Python/thread_solaris.h Tue Oct 08 14:17:53 1996 +0000 @@ -25,6 +25,7 @@ #include <stdlib.h> #include <stdio.h> #include <unistd.h> +#include <errno.h> #include </usr/include/thread.h> #undef _POSIX_THREADS @@ -211,12 +212,25 @@ free((void *) sema); } -void down_sema _P1(sema, type_sema sema) +int down_sema _P2(sema, type_sema sema, waitflag, int waitflag) { + int success; + dprintf(("down_sema(%lx) called\n", (long) sema)); - if (sema_wait((sema_t *) sema)) - perror("sema_wait"); - dprintf(("down_sema(%lx) return\n", (long) sema)); + if (waitflag) + success = sema_wait((sema_t *) sema); + else + success = sema_trywait((sema_t *) sema); + if (success < 0) { + if (errno == EBUSY) + success = 0; + else + perror("sema_wait"); + } + else + success = !success; + dprintf(("down_sema(%lx) return %d\n", (long) sema, success)); + return success; } void up_sema _P1(sema, type_sema sema)
