summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads/semaphore.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/linuxthreads/semaphore.c')
-rw-r--r--libpthread/linuxthreads/semaphore.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/libpthread/linuxthreads/semaphore.c b/libpthread/linuxthreads/semaphore.c
index 9025dfee6..b66735bed 100644
--- a/libpthread/linuxthreads/semaphore.c
+++ b/libpthread/linuxthreads/semaphore.c
@@ -14,15 +14,15 @@
/* Semaphores a la POSIX 1003.1b */
-#include <features.h>
-#include <limits.h>
#include <errno.h>
+#include <limits.h>
#include "pthread.h"
#include "semaphore.h"
#include "internals.h"
#include "spinlock.h"
#include "restart.h"
#include "queue.h"
+#include <not-cancel.h>
int sem_init(sem_t *sem, int pshared, unsigned int value)
{
@@ -45,7 +45,7 @@ int sem_init(sem_t *sem, int pshared, unsigned int value)
static int new_sem_extricate_func(void *obj, pthread_descr th)
{
- volatile pthread_descr self = thread_self();
+ __volatile__ pthread_descr self = thread_self();
sem_t *sem = obj;
int did_remove = 0;
@@ -58,7 +58,7 @@ static int new_sem_extricate_func(void *obj, pthread_descr th)
int sem_wait(sem_t * sem)
{
- volatile pthread_descr self = thread_self();
+ __volatile__ pthread_descr self = thread_self();
pthread_extricate_if extr;
int already_canceled = 0;
int spurious_wakeup_count;
@@ -169,8 +169,8 @@ int sem_post(sem_t * sem)
}
request.req_kind = REQ_POST;
request.req_args.post = sem;
- TEMP_FAILURE_RETRY(write(__pthread_manager_request,
- (char *) &request, sizeof(request)));
+ TEMP_FAILURE_RETRY(write_not_cancel(__pthread_manager_request,
+ (char *) &request, sizeof(request)));
}
return 0;
}
@@ -190,19 +190,19 @@ int sem_destroy(sem_t * sem)
return 0;
}
-sem_t *sem_open(const char *name attribute_unused, int oflag attribute_unused, ...)
+sem_t *sem_open(const char *name, int oflag, ...)
{
__set_errno (ENOSYS);
return SEM_FAILED;
}
-int sem_close(sem_t *sem attribute_unused)
+int sem_close(sem_t *sem)
{
__set_errno (ENOSYS);
return -1;
}
-int sem_unlink(const char *name attribute_unused)
+int sem_unlink(const char *name)
{
__set_errno (ENOSYS);
return -1;