summaryrefslogtreecommitdiff
path: root/tests/detach1.c
diff options
context:
space:
mode:
authorrpj <rpj>2005-05-18 14:34:18 +0000
committerrpj <rpj>2005-05-18 14:34:18 +0000
commit70fb72bb490c66f06cdab08ad656c4ce52c71448 (patch)
tree513aa651f6589c9c3d30dde2d6c0c958c9339d0b /tests/detach1.c
parenta10f66e68253f8296ea624ebc6b55cd75cd0ba79 (diff)
''
Diffstat (limited to 'tests/detach1.c')
-rw-r--r--tests/detach1.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/tests/detach1.c b/tests/detach1.c
index b0835c5..165c8c1 100644
--- a/tests/detach1.c
+++ b/tests/detach1.c
@@ -38,12 +38,17 @@
#include "test.h"
+
+enum {
+ NUMTHREADS = 100
+};
+
void *
func(void * arg)
{
int i = (int) arg;
- Sleep(i * 100);
+ Sleep(i * 10);
pthread_exit(arg);
@@ -54,31 +59,31 @@ func(void * arg)
int
main(int argc, char * argv[])
{
- pthread_t id[4];
+ pthread_t id[NUMTHREADS];
int i;
/* Create a few threads and then exit. */
- for (i = 0; i < 4; i++)
+ for (i = 0; i < NUMTHREADS; i++)
{
assert(pthread_create(&id[i], NULL, func, (void *) i) == 0);
}
/* Some threads will finish before they are detached, some after. */
- Sleep(2 * 100 + 50);
+ Sleep(NUMTHREADS/2 * 10 + 50);
- for (i = 0; i < 4; i++)
+ for (i = 0; i < NUMTHREADS; i++)
{
assert(pthread_detach(id[i]) == 0);
}
- Sleep(6 * 100);
+ Sleep(NUMTHREADS * 10 + 100);
/*
* Check that all threads are now invalid.
* This relies on unique thread IDs - e.g. works with
* pthreads-w32 or Solaris, but may not work for Linux, BSD etc.
*/
- for (i = 0; i < 4; i++)
+ for (i = 0; i < NUMTHREADS; i++)
{
assert(pthread_kill(id[i], 0) == ESRCH);
}