diff options
author | marha <marha@users.sourceforge.net> | 2013-02-13 10:41:10 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-02-13 10:41:10 +0100 |
commit | b41f74438672dd682bc01ae818cb3da654f22c1e (patch) | |
tree | 07674ef1368a5427a75080528d8cee74234f6b28 /pthreads/tests/semaphore3.c | |
parent | aaf21968deb85b635cb6aa6544df233ea5981346 (diff) | |
download | vcxsrv-b41f74438672dd682bc01ae818cb3da654f22c1e.tar.gz vcxsrv-b41f74438672dd682bc01ae818cb3da654f22c1e.tar.bz2 vcxsrv-b41f74438672dd682bc01ae818cb3da654f22c1e.zip |
Updated to latest CVS version of pthreads
Diffstat (limited to 'pthreads/tests/semaphore3.c')
-rw-r--r-- | pthreads/tests/semaphore3.c | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/pthreads/tests/semaphore3.c b/pthreads/tests/semaphore3.c index a0dfcb6f6..842313066 100644 --- a/pthreads/tests/semaphore3.c +++ b/pthreads/tests/semaphore3.c @@ -6,10 +6,11 @@ * * Pthreads-win32 - POSIX Threads Library for Win32 * Copyright(C) 1998 John E. Bossom - * Copyright(C) 1999,2005 Pthreads-win32 contributors - * - * Contact Email: rpj@callisto.canberra.edu.au - * + * Copyright(C) 1999,2012 Pthreads-win32 contributors + * + * Homepage1: http://sourceware.org/pthreads-win32/ + * Homepage2: http://sourceforge.net/projects/pthreads4w/ + * * The current list of contributors is contained * in the file CONTRIBUTORS included with the source * code distribution. The list can also be seen at the @@ -80,41 +81,43 @@ sem_t s; void * thr (void * arg) { - assert(sem_wait(&s) == 0); assert(pthread_detach(pthread_self()) == 0); + assert(sem_wait(&s) == 0); return NULL; } int main() { - int value = 0; - int i; - pthread_t t[MAX_COUNT+1]; + int value = 0; + int i; + pthread_t t[MAX_COUNT+1]; - assert(sem_init(&s, PTHREAD_PROCESS_PRIVATE, 0) == 0); - assert(sem_getvalue(&s, &value) == 0); -// printf("Value = %d\n", value); fflush(stdout); - assert(value == 0); + assert(sem_init(&s, PTHREAD_PROCESS_PRIVATE, 0) == 0); + assert(sem_getvalue(&s, &value) == 0); + //printf("Value = %d\n", value); fflush(stdout); + assert(value == 0); - for (i = 1; i <= MAX_COUNT; i++) - { - assert(pthread_create(&t[i], NULL, thr, NULL) == 0); - do { - sched_yield(); - assert(sem_getvalue(&s, &value) == 0); - } while (value != -i); -// printf("Value = %d\n", value); fflush(stdout); - assert(-value == i); - } + for (i = 1; i <= MAX_COUNT; i++) + { + assert(pthread_create(&t[i], NULL, thr, NULL) == 0); + do + { + sched_yield(); + assert(sem_getvalue(&s, &value) == 0); + } + while (value != -i); + //printf("1:Value = %d\n", value); fflush(stdout); + assert(-value == i); + } - for (i = MAX_COUNT - 1; i >= 0; i--) - { - assert(sem_post(&s) == 0); - assert(sem_getvalue(&s, &value) == 0); -// printf("Value = %d\n", value); fflush(stdout); - assert(-value == i); - } + for (i = MAX_COUNT - 1; i >= 0; i--) + { + assert(sem_post(&s) == 0); + assert(sem_getvalue(&s, &value) == 0); + //printf("2:Value = %d\n", value); fflush(stdout); + assert(-value == i); + } return 0; } |