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)