aboutsummaryrefslogtreecommitdiff
path: root/pthreads/tests/once2.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/once2.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/once2.c')
-rw-r--r--pthreads/tests/once2.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/pthreads/tests/once2.c b/pthreads/tests/once2.c
index 84e3f4bf6..ffd6bfe10 100644
--- a/pthreads/tests/once2.c
+++ b/pthreads/tests/once2.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
@@ -54,8 +55,8 @@ typedef struct {
CRITICAL_SECTION cs;
} sharedInt_t;
-static sharedInt_t numOnce = {0, {0}};
-static sharedInt_t numThreads = {0, {0}};
+static sharedInt_t numOnce;
+static sharedInt_t numThreads;
void
myfunc(void)
@@ -83,6 +84,9 @@ main()
pthread_t t[NUM_THREADS][NUM_ONCE];
int i, j;
+ memset(&numOnce, 0, sizeof(sharedInt_t));
+ memset(&numThreads, 0, sizeof(sharedInt_t));
+
InitializeCriticalSection(&numThreads.cs);
InitializeCriticalSection(&numOnce.cs);
@@ -91,7 +95,11 @@ main()
once[j] = o;
for (i = 0; i < NUM_THREADS; i++)
- assert(pthread_create(&t[i][j], NULL, mythread, (void *)(size_t)j) == 0);
+ {
+ /* GCC build: create was failing with EAGAIN after 790 threads */
+ while (0 != pthread_create(&t[i][j], NULL, mythread, (void *)(size_t)j))
+ sched_yield();
+ }
}
for (j = 0; j < NUM_ONCE; j++)