aboutsummaryrefslogtreecommitdiff
path: root/pthreads/tests/semaphore3.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-02-13 11:03:57 +0100
committermarha <marha@users.sourceforge.net>2013-02-13 11:03:57 +0100
commit8fa17b13062c1e2acca542cc7a2ccb09aca874e8 (patch)
tree158a6239b0fdf2abf63fb7365b4cd4886c15f5b1 /pthreads/tests/semaphore3.c
parent4a165ef2f762a4ce9155f2a3626692326bda616d (diff)
parentb41f74438672dd682bc01ae818cb3da654f22c1e (diff)
downloadvcxsrv-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.c61
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;
}