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_post.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sem_post.c') diff --git a/sem_post.c b/sem_post.c index 3281643..1d607e8 100644 --- a/sem_post.c +++ b/sem_post.c @@ -85,7 +85,8 @@ sem_post (sem_t * sem) #else /* NEED_SEM */ - else if (!ReleaseSemaphore ((*sem)->sem, 1, 0)) + else if (InterlockedExchangeAdd((LPLONG) &(*sem)->value, (LONG) 1) < 0 + && !ReleaseSemaphore((*sem)->sem, 1, NULL)) #endif /* NEED_SEM */ -- cgit v1.2.3