From 8a6c26d9251d098156c8ae8c33ce9f6122cd3c96 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 23:36:14 +0200 Subject: Prevent pthread.h from exposing assert() * sysdeps/generic/bits/cancelation.h: Do not include (__pthread_cleanup_pop): Do not call `assert'. --- sysdeps/generic/bits/cancelation.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/bits/cancelation.h b/sysdeps/generic/bits/cancelation.h index db9169a..46486f5 100644 --- a/sysdeps/generic/bits/cancelation.h +++ b/sysdeps/generic/bits/cancelation.h @@ -20,8 +20,6 @@ #ifndef _BITS_CANCELATION_H #define _BITS_CANCELATION_H 1 -#include - struct __pthread_cancelation_handler { void (*handler)(void *); @@ -47,7 +45,6 @@ struct __pthread_cancelation_handler **__pthread_get_cleanup_stack (void); #define __pthread_cleanup_pop(execute) \ if (execute) \ __handler.handler (__handler.arg); \ - assert (*__handlers == &__handler); \ *__handlers = __handler.next; \ } -- cgit v1.2.3 From 196ed7b4829c8a2f1550aaea7987a52fb40f8ba9 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 2 Sep 2010 03:59:40 +0200 Subject: Use __sched_param instead of sched_param to avoid exposing inclusion of and exposure of sched_param from * sysdeps/generic/bits/thread-attr.h: Define __need_schedparam and include instead of including (__pthread_attr): Use `__sched_param' instead of `sched_param'. --- sysdeps/generic/bits/thread-attr.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/bits/thread-attr.h b/sysdeps/generic/bits/thread-attr.h index c3a93fd..f2e55f2 100644 --- a/sysdeps/generic/bits/thread-attr.h +++ b/sysdeps/generic/bits/thread-attr.h @@ -20,7 +20,8 @@ #ifndef _BITS_THREAD_ATTR_H #define _BITS_THREAD_ATTR_H 1 -#include +#define __need_schedparam +#include enum __pthread_detachstate; enum __pthread_inheritsched; @@ -30,7 +31,7 @@ enum __pthread_contentionscope; that not all of them are supported on all systems. */ struct __pthread_attr { - struct sched_param schedparam; + struct __sched_param schedparam; void *stackaddr; size_t stacksize; size_t guardsize; -- cgit v1.2.3 From a6bb8f89d9569a3ecb0cefb892fd981481a8e976 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 3 Sep 2010 00:20:42 +0200 Subject: Fix __sched_param / sched_param conversion * sysdeps/generic/pt-attr-getschedparam.c (pthread_attr_getschedparam): memcpy from `attr->schedparam' to `param' to convert from __sched_param to sched_param. * sysdeps/generic/pt-attr-setschedparam.c (pthread_attr_setschedparam): memcpy from `param' to `attr->schedparam' to convert from sched_param to __sched_param. --- sysdeps/generic/pt-attr-getschedparam.c | 2 +- sysdeps/generic/pt-attr-setschedparam.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/pt-attr-getschedparam.c b/sysdeps/generic/pt-attr-getschedparam.c index 25afebd..6c3f15b 100644 --- a/sysdeps/generic/pt-attr-getschedparam.c +++ b/sysdeps/generic/pt-attr-getschedparam.c @@ -26,6 +26,6 @@ int pthread_attr_getschedparam (const pthread_attr_t *attr, struct sched_param *param) { - *param = attr->schedparam; + memcpy (param, &attr->schedparam, sizeof *param); return 0; } diff --git a/sysdeps/generic/pt-attr-setschedparam.c b/sysdeps/generic/pt-attr-setschedparam.c index 18a575e..5459f10 100644 --- a/sysdeps/generic/pt-attr-setschedparam.c +++ b/sysdeps/generic/pt-attr-setschedparam.c @@ -30,7 +30,7 @@ pthread_attr_setschedparam (pthread_attr_t *attr, if (memcmp (param, &__pthread_default_attr.schedparam, sizeof *param) == 0) { - attr->schedparam = *param; + memcpy (&attr->schedparam, param, sizeof *param); return 0; } -- cgit v1.2.3 From c2a1b325b7b2ce0d3d16bd1e9430e1d7eddce71e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 23 Aug 2011 19:06:18 +0200 Subject: Use __clockid_t instead of clockid_t Using clockid_t just for pthread types makes us pull , which defines time(), which may conflict with applications. * include/pthread/pthread.h (pthread_condattr_getclock, pthread_condattr_setclock, pthread_getcpuclockid): Use __clockid_t instead of clockid_t. * include/pthread/pthreadtypes.h: Include , instead of and defining clockid_t ourself when not defined by time.h. * sysdeps/generic/bits/condition-attr.h: Include instead of . (__pthread_condattr): Use __clockid_t instead of clockid_t. --- include/pthread/pthread.h | 6 +++--- include/pthread/pthreadtypes.h | 13 +------------ sysdeps/generic/bits/condition-attr.h | 4 ++-- 3 files changed, 6 insertions(+), 17 deletions(-) (limited to 'sysdeps') diff --git a/include/pthread/pthread.h b/include/pthread/pthread.h index e6b9249..67b8fe4 100644 --- a/include/pthread/pthread.h +++ b/include/pthread/pthread.h @@ -377,11 +377,11 @@ extern int pthread_condattr_destroy (pthread_condattr_t *attr); #ifdef __USE_XOPEN2K /* Return the value of the clock attribute in *ATTR in *CLOCK_ID. */ extern int pthread_condattr_getclock (const pthread_condattr_t *__restrict attr, - clockid_t *__restrict clock_id); + __clockid_t *__restrict clock_id); /* Set the value of the clock attribute in *ATTR to CLOCK_ID. */ extern int pthread_condattr_setclock (pthread_condattr_t *attr, - clockid_t clock_id); + __clockid_t clock_id); #endif @@ -718,7 +718,7 @@ extern int pthread_kill (pthread_t thread, int signo); #ifdef __USE_XOPEN2K /* Return the thread cpu clock. */ -extern int pthread_getcpuclockid (pthread_t thread, clockid_t *clock); +extern int pthread_getcpuclockid (pthread_t thread, __clockid_t *clock); #endif diff --git a/include/pthread/pthreadtypes.h b/include/pthread/pthreadtypes.h index 471e08e..33bd009 100644 --- a/include/pthread/pthreadtypes.h +++ b/include/pthread/pthreadtypes.h @@ -25,18 +25,7 @@ #include -#define __need_clockid_t -#include - -/* If we are in a mode where clockid_t is not automatically defined - and another header has already included then defining - __need_clockid_t was not enough. */ -#ifndef __clockid_t_defined -# define __clockid_t_defined 1 -# include -/* Clock ID used in clock and timer functions. */ -typedef __clockid_t clockid_t; -#endif +#include __BEGIN_DECLS diff --git a/sysdeps/generic/bits/condition-attr.h b/sysdeps/generic/bits/condition-attr.h index a131128..4cd4e8c 100644 --- a/sysdeps/generic/bits/condition-attr.h +++ b/sysdeps/generic/bits/condition-attr.h @@ -20,7 +20,7 @@ #ifndef _BITS_CONDITION_ATTR_H #define _BITS_CONDITION_ATTR_H 1 -#include +#include enum __pthread_process_shared; @@ -28,7 +28,7 @@ enum __pthread_process_shared; struct __pthread_condattr { enum __pthread_process_shared pshared; - clockid_t clock; + __clockid_t clock; }; #endif /* bits/condition.h */ -- cgit v1.2.3