diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2001-05-14 14:17:54 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2001-05-14 14:17:54 +0000 |
commit | 9097327dc1c667fc51b8e05cc7c0626fac96665d (patch) | |
tree | 1a67c4a8c6116747dfe0177e96928805dbba94b0 /mdk-stage1/dietlibc/libpthread/test.c | |
parent | f15aa3a552022743398a652165d76bf912c715e5 (diff) | |
download | drakx-9097327dc1c667fc51b8e05cc7c0626fac96665d.tar drakx-9097327dc1c667fc51b8e05cc7c0626fac96665d.tar.gz drakx-9097327dc1c667fc51b8e05cc7c0626fac96665d.tar.bz2 drakx-9097327dc1c667fc51b8e05cc7c0626fac96665d.tar.xz drakx-9097327dc1c667fc51b8e05cc7c0626fac96665d.zip |
Initial revision
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/test.c')
-rw-r--r-- | mdk-stage1/dietlibc/libpthread/test.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/test.c b/mdk-stage1/dietlibc/libpthread/test.c new file mode 100644 index 000000000..3272c1753 --- /dev/null +++ b/mdk-stage1/dietlibc/libpthread/test.c @@ -0,0 +1,72 @@ +#include <stdio.h> +#include <pthread.h> + +#include <unistd.h> +#include <signal.h> + +#include <errno.h> + +int ra; + +void test(int sig) +{ + printf("SIGNAL %d in %d\n",sig,getpid()); + fflush(stdout); + signal(SIGHUP, test); +} + +void* thread(void* arg) +{ + int i; + for (i=0;i<10; i++) + { + printf("child %ld %8p\n", pthread_self(),arg); + sleep(1); + } + return arg; +} + +void* thread2(void *arg) +{ + pthread_t t; + int i; + + printf("child %ld %8p\n", pthread_self(),arg); + for (i=0; i<3; ++i) { + printf("child starting next in %d secs %ld %8p\n", 3-i, pthread_self(),arg); + sleep(1); + } + pthread_create(&t,0, thread, (void*)2); + printf("new child @ %ld\n",t); + return (void*)t; +} + +int main(int argc, char*argv[]) +{ + pthread_t t; + + signal(SIGHUP, test); + + pthread_create(&t,0, thread2, 0); + pthread_create(&t,0, thread, (void *)3); + pthread_create(&t,0, thread, (void *)1); + + puts("main"); + +#if 0 + { + int i; + for(i=0;i<4;i++) sleep(1); + } +#else + { + int *tt; + int i = pthread_join(t,(void*)&tt); + printf("join %d %p %d\n",i,tt,(*(__errno_location()))); + } +#endif + + puts("main exit"); + + return 0; +} |