From 9097327dc1c667fc51b8e05cc7c0626fac96665d Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Mon, 14 May 2001 14:17:54 +0000 Subject: Initial revision --- mdk-stage1/dietlibc/libpthread/test.c | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 mdk-stage1/dietlibc/libpthread/test.c (limited to 'mdk-stage1/dietlibc/libpthread/test.c') 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 +#include + +#include +#include + +#include + +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; +} -- cgit v1.2.1