diff options
author | marha <marha@users.sourceforge.net> | 2013-02-13 11:03:57 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-02-13 11:03:57 +0100 |
commit | 8fa17b13062c1e2acca542cc7a2ccb09aca874e8 (patch) | |
tree | 158a6239b0fdf2abf63fb7365b4cd4886c15f5b1 /pthreads/tests/semaphore3.c | |
parent | 4a165ef2f762a4ce9155f2a3626692326bda616d (diff) | |
parent | b41f74438672dd682bc01ae818cb3da654f22c1e (diff) | |
download | vcxsrv-8fa17b13062c1e2acca542cc7a2ccb09aca874e8.tar.gz vcxsrv-8fa17b13062c1e2acca542cc7a2ccb09aca874e8.tar.bz2 vcxsrv-8fa17b13062c1e2acca542cc7a2ccb09aca874e8.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
Updated to latest CVS version of pthreads
Conflicts:
pthreads/Makefile
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; } |