From: Julian Seward Date: Sun, 2 Jun 2002 09:29:31 +0000 (+0000) Subject: Do pthread_atter_{set,get}scope. X-Git-Tag: svn/VALGRIND_1_0_3~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=501f08d7815939ab48314d54621a010ce3ecf0b2;p=thirdparty%2Fvalgrind.git Do pthread_atter_{set,get}scope. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@360 --- diff --git a/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c index 953f3d146f..56f435bece 100644 --- a/coregrind/arch/x86-linux/vg_libpthread.c +++ b/coregrind/arch/x86-linux/vg_libpthread.c @@ -269,6 +269,25 @@ int pthread_attr_destroy(pthread_attr_t *attr) return 0; } +/* These are no-ops, as with LinuxThreads. */ +int pthread_attr_setscope ( pthread_attr_t *attr, int scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope == PTHREAD_SCOPE_SYSTEM) + return 0; + if (scope == PTHREAD_SCOPE_PROCESS) + return ENOTSUP; + return EINVAL; +} + +int pthread_attr_getscope ( const pthread_attr_t *attr, int *scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope) + *scope = PTHREAD_SCOPE_SYSTEM; + return 0; +} + /* --------------------------------------------------- Helper functions for running a thread and for clearing up afterwards. diff --git a/coregrind/arch/x86-linux/vg_libpthread_unimp.c b/coregrind/arch/x86-linux/vg_libpthread_unimp.c index de92468019..b5d1349e2c 100644 --- a/coregrind/arch/x86-linux/vg_libpthread_unimp.c +++ b/coregrind/arch/x86-linux/vg_libpthread_unimp.c @@ -86,13 +86,13 @@ void pthread_attr_getdetachstate ( void ) { unimp("pthread_attr_getdetachstate" void pthread_attr_getinheritsched ( void ) { unimp("pthread_attr_getinheritsched"); } //void pthread_attr_getschedparam ( void ) { unimp("pthread_attr_getschedparam"); } void pthread_attr_getschedpolicy ( void ) { unimp("pthread_attr_getschedpolicy"); } -void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } +//void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } //void pthread_attr_setdetachstate ( void ) { unimp("pthread_attr_setdetachstate"); } //void pthread_attr_setinheritsched ( void ) { unimp("pthread_attr_setinheritsched"); } //void pthread_attr_setschedparam ( void ) { unimp("pthread_attr_setschedparam"); } void pthread_attr_setschedpolicy ( void ) { unimp("pthread_attr_setschedpolicy"); } -void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } +//void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } void pthread_barrier_destroy ( void ) { unimp("pthread_barrier_destroy"); } void pthread_barrier_init ( void ) { unimp("pthread_barrier_init"); } void pthread_barrier_wait ( void ) { unimp("pthread_barrier_wait"); } diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c index 953f3d146f..56f435bece 100644 --- a/coregrind/vg_libpthread.c +++ b/coregrind/vg_libpthread.c @@ -269,6 +269,25 @@ int pthread_attr_destroy(pthread_attr_t *attr) return 0; } +/* These are no-ops, as with LinuxThreads. */ +int pthread_attr_setscope ( pthread_attr_t *attr, int scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope == PTHREAD_SCOPE_SYSTEM) + return 0; + if (scope == PTHREAD_SCOPE_PROCESS) + return ENOTSUP; + return EINVAL; +} + +int pthread_attr_getscope ( const pthread_attr_t *attr, int *scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope) + *scope = PTHREAD_SCOPE_SYSTEM; + return 0; +} + /* --------------------------------------------------- Helper functions for running a thread and for clearing up afterwards. diff --git a/coregrind/vg_libpthread_unimp.c b/coregrind/vg_libpthread_unimp.c index de92468019..b5d1349e2c 100644 --- a/coregrind/vg_libpthread_unimp.c +++ b/coregrind/vg_libpthread_unimp.c @@ -86,13 +86,13 @@ void pthread_attr_getdetachstate ( void ) { unimp("pthread_attr_getdetachstate" void pthread_attr_getinheritsched ( void ) { unimp("pthread_attr_getinheritsched"); } //void pthread_attr_getschedparam ( void ) { unimp("pthread_attr_getschedparam"); } void pthread_attr_getschedpolicy ( void ) { unimp("pthread_attr_getschedpolicy"); } -void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } +//void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } //void pthread_attr_setdetachstate ( void ) { unimp("pthread_attr_setdetachstate"); } //void pthread_attr_setinheritsched ( void ) { unimp("pthread_attr_setinheritsched"); } //void pthread_attr_setschedparam ( void ) { unimp("pthread_attr_setschedparam"); } void pthread_attr_setschedpolicy ( void ) { unimp("pthread_attr_setschedpolicy"); } -void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } +//void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } void pthread_barrier_destroy ( void ) { unimp("pthread_barrier_destroy"); } void pthread_barrier_init ( void ) { unimp("pthread_barrier_init"); } void pthread_barrier_wait ( void ) { unimp("pthread_barrier_wait"); } diff --git a/vg_libpthread.c b/vg_libpthread.c index 953f3d146f..56f435bece 100644 --- a/vg_libpthread.c +++ b/vg_libpthread.c @@ -269,6 +269,25 @@ int pthread_attr_destroy(pthread_attr_t *attr) return 0; } +/* These are no-ops, as with LinuxThreads. */ +int pthread_attr_setscope ( pthread_attr_t *attr, int scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope == PTHREAD_SCOPE_SYSTEM) + return 0; + if (scope == PTHREAD_SCOPE_PROCESS) + return ENOTSUP; + return EINVAL; +} + +int pthread_attr_getscope ( const pthread_attr_t *attr, int *scope ) +{ + ensure_valgrind("pthread_attr_setscope"); + if (scope) + *scope = PTHREAD_SCOPE_SYSTEM; + return 0; +} + /* --------------------------------------------------- Helper functions for running a thread and for clearing up afterwards. diff --git a/vg_libpthread_unimp.c b/vg_libpthread_unimp.c index de92468019..b5d1349e2c 100644 --- a/vg_libpthread_unimp.c +++ b/vg_libpthread_unimp.c @@ -86,13 +86,13 @@ void pthread_attr_getdetachstate ( void ) { unimp("pthread_attr_getdetachstate" void pthread_attr_getinheritsched ( void ) { unimp("pthread_attr_getinheritsched"); } //void pthread_attr_getschedparam ( void ) { unimp("pthread_attr_getschedparam"); } void pthread_attr_getschedpolicy ( void ) { unimp("pthread_attr_getschedpolicy"); } -void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } +//void pthread_attr_getscope ( void ) { unimp("pthread_attr_getscope"); } //void pthread_attr_setdetachstate ( void ) { unimp("pthread_attr_setdetachstate"); } //void pthread_attr_setinheritsched ( void ) { unimp("pthread_attr_setinheritsched"); } //void pthread_attr_setschedparam ( void ) { unimp("pthread_attr_setschedparam"); } void pthread_attr_setschedpolicy ( void ) { unimp("pthread_attr_setschedpolicy"); } -void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } +//void pthread_attr_setscope ( void ) { unimp("pthread_attr_setscope"); } void pthread_barrier_destroy ( void ) { unimp("pthread_barrier_destroy"); } void pthread_barrier_init ( void ) { unimp("pthread_barrier_init"); } void pthread_barrier_wait ( void ) { unimp("pthread_barrier_wait"); }