diff options
author | rpj <rpj> | 2005-05-18 14:34:18 +0000 |
---|---|---|
committer | rpj <rpj> | 2005-05-18 14:34:18 +0000 |
commit | 70fb72bb490c66f06cdab08ad656c4ce52c71448 (patch) | |
tree | 513aa651f6589c9c3d30dde2d6c0c958c9339d0b /tests/detach1.c | |
parent | a10f66e68253f8296ea624ebc6b55cd75cd0ba79 (diff) |
''
Diffstat (limited to 'tests/detach1.c')
-rw-r--r-- | tests/detach1.c | 19 |
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); } |