diff options
Diffstat (limited to 'tests/bionic/libc/other/test_thread_max.c')
-rw-r--r-- | tests/bionic/libc/other/test_thread_max.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/bionic/libc/other/test_thread_max.c b/tests/bionic/libc/other/test_thread_max.c new file mode 100644 index 00000000..7aeb5c5a --- /dev/null +++ b/tests/bionic/libc/other/test_thread_max.c @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include <pthread.h> +#include <stdio.h> +#include <time.h> +#include <unistd.h> + +static void* +thread_func( void* arg ) +{ + fprintf(stderr, "thread %ld\n", (long)arg ); + return NULL; +} + +int main( void ) +{ + int count; + pthread_attr_t attr; + + pthread_attr_init(&attr); + pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_DETACHED ); + pthread_attr_setstacksize( &attr, 16*4096 ); + + for ( count = 0; count != ~0; count++ ) { + pthread_t thread; + struct timespec ts; + + if (pthread_create( &thread, &attr, thread_func, (void*)(long)count ) < 0) { + fprintf(stderr, "could not create thread %d\n", count); + break; + } + ts.tv_sec = 0; + ts.tv_nsec = 0.002*1e9; + nanosleep( &ts, &ts ); + } + sleep(1); + return 0; +} |