From 8c8bcc5d1737002a9d153105c16b262d2e201efa Mon Sep 17 00:00:00 2001 From: rpj Date: Tue, 19 Oct 2004 13:24:40 +0000 Subject: Semaphore speedups - alpha, but passes testsuite --- sem_trywait.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sem_trywait.c') diff --git a/sem_trywait.c b/sem_trywait.c index 342ee06..253c10e 100644 --- a/sem_trywait.c +++ b/sem_trywait.c @@ -92,8 +92,9 @@ sem_trywait (sem_t * sem) { result = EINVAL; } - else if (WaitForSingleObject ((*sem)->sem, 0) == WAIT_TIMEOUT) + else if (InterlockedDecrement((LPLONG) &(*sem)->value) < 0) { + (void) InterlockedIncrement((LPLONG) &(*sem)->value); result = EAGAIN; } -- cgit v1.2.3