From 6fc5fdbdc70dd17ea8e681a361fb4dae541ee953 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 4 Mar 2011 00:45:59 -0500 Subject: implement POSIX semaphores --- src/thread/sem_trywait.c | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/thread/sem_trywait.c (limited to 'src/thread/sem_trywait.c') diff --git a/src/thread/sem_trywait.c b/src/thread/sem_trywait.c new file mode 100644 index 00000000..d0e928ef --- /dev/null +++ b/src/thread/sem_trywait.c @@ -0,0 +1,11 @@ +#include +#include "pthread_impl.h" + +int sem_trywait(sem_t *sem) +{ + int val = a_fetch_add(sem->__val, -1); + if (val > 0) return 0; + a_inc(sem->__val); + errno = EAGAIN; + return -1; +} -- cgit v1.2.1