aboutsummaryrefslogtreecommitdiff
path: root/pthreads/tests/semaphore1.c
diff options
context:
space:
mode:
Diffstat (limited to 'pthreads/tests/semaphore1.c')
-rw-r--r--pthreads/tests/semaphore1.c49
1 files changed, 19 insertions, 30 deletions
diff --git a/pthreads/tests/semaphore1.c b/pthreads/tests/semaphore1.c
index f89a43081..8fc91ee02 100644
--- a/pthreads/tests/semaphore1.c
+++ b/pthreads/tests/semaphore1.c
@@ -86,8 +86,11 @@ thr(void * arg)
if ( result == -1 )
{
int err = errno;
- printf("thread: sem_trywait 1: expecting error %s: got %s\n",
- error_string[EAGAIN], error_string[err]); fflush(stdout);
+ if (err != EAGAIN)
+ {
+ printf("thread: sem_trywait 1: expecting error %s: got %s\n",
+ error_string[EAGAIN], error_string[err]); fflush(stdout);
+ }
assert(err == EAGAIN);
}
else
@@ -99,18 +102,9 @@ thr(void * arg)
assert((result = sem_trywait(&s)) == 0);
- if ( result == -1 )
- {
- perror("thread: sem_trywait 2");
- }
- else
- {
- printf("thread: ok 2\n");
- }
-
assert(sem_post(&s) == 0);
- return 0;
+ return NULL;
}
@@ -119,21 +113,25 @@ main()
{
pthread_t t;
sem_t s;
- int result;
+ void* result1 = (void*)-1;
+ int result2;
assert(pthread_create(&t, NULL, thr, NULL) == 0);
- assert(pthread_join(t, (void **)&result) == 0);
- assert(result == 0);
+ assert(pthread_join(t, &result1) == 0);
+ assert((int)(size_t)result1 == 0);
assert(sem_init(&s, PTHREAD_PROCESS_PRIVATE, 0) == 0);
- assert((result = sem_trywait(&s)) == -1);
+ assert((result2 = sem_trywait(&s)) == -1);
- if ( result == -1 )
+ if (result2 == -1)
{
int err = errno;
- printf("main: sem_trywait 1: expecting error %s: got %s\n",
- error_string[EAGAIN], error_string[err]); fflush(stdout);
+ if (err != EAGAIN)
+ {
+ printf("main: sem_trywait 1: expecting error %s: got %s\n",
+ error_string[EAGAIN], error_string[err]); fflush(stdout);
+ }
assert(err == EAGAIN);
}
else
@@ -141,18 +139,9 @@ main()
printf("main: ok 1\n");
}
- assert((result = sem_post(&s)) == 0);
+ assert((result2 = sem_post(&s)) == 0);
- assert((result = sem_trywait(&s)) == 0);
-
- if ( result == -1 )
- {
- perror("main: sem_trywait 2");
- }
- else
- {
- printf("main: ok 2\n");
- }
+ assert((result2 = sem_trywait(&s)) == 0);
assert(sem_post(&s) == 0);