Date: Tue, 28 Mar 2006 16:59:27 -0500 (EST) From: Daniel Eischen <deischen@freebsd.org> To: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= <des@des.no> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/lib/libpthread/thread thr_barrier.c Message-ID: <Pine.GSO.4.43.0603281658560.18701-200000@sea.ntplx.net> In-Reply-To: <86mzfauucm.fsf@xps.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --=-=-= Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Content-ID: <Pine.GSO.4.43.0603281658562.18701@sea.ntplx.net> On Tue, 28 Mar 2006, Dag-Erling [iso-8859-1] Sm=F8rgrav wrote: > Daniel Eischen <deischen@FreeBSD.org> writes: > > Log: > > Use the correct type for and argument. Recent changes to namespace.h > > exposed this bug. > > You beat me to it... > > The attached patch brings libpthread up to WARNS level 2. More work > is required for level 3 or higher (missing prototypes for syscall > wrappers, mostly). Ok, it looks good to me. --=20 DE --=-=-= Content-Type: TEXT/X-PATCH; CHARSET=US-ASCII Content-ID: <Pine.GSO.4.43.0603281658563.18701@sea.ntplx.net> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="libpthread.diff" Index: Makefile =================================================================== RCS file: /home/ncvs/src/lib/libpthread/Makefile,v retrieving revision 1.56 diff -u -r1.56 Makefile --- Makefile 16 Mar 2006 15:17:47 -0000 1.56 +++ Makefile 28 Mar 2006 21:32:13 -0000 @@ -25,7 +25,7 @@ # Uncomment this if you want libpthread to contain debug information for # thread locking. CFLAGS+=-D_LOCK_DEBUG -#CFLAGS+= -g +WARNS?=2 # Uncomment this if you want to build a 1:1 threading mode library # however it is no longer strictly conformed to POSIX Index: thread/thr_getprio.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_getprio.c,v retrieving revision 1.10 diff -u -r1.10 thr_getprio.c --- thread/thr_getprio.c 13 Mar 2006 00:59:51 -0000 1.10 +++ thread/thr_getprio.c 28 Mar 2006 21:32:13 -0000 @@ -31,8 +31,12 @@ * * $FreeBSD: src/lib/libpthread/thread/thr_getprio.c,v 1.10 2006/03/13 00:59:51 deischen Exp $ */ + +#include "namespace.h" #include <errno.h> #include <pthread.h> +#include "un-namespace.h" + #include "thr_private.h" LT10_COMPAT_PRIVATE(_pthread_getprio); @@ -46,7 +50,7 @@ int policy, ret; struct sched_param param; - if ((ret = pthread_getschedparam(pthread, &policy, ¶m)) == 0) + if ((ret = _pthread_getschedparam(pthread, &policy, ¶m)) == 0) ret = param.sched_priority; else { /* Invalid thread: */ Index: thread/thr_private.h =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_private.h,v retrieving revision 1.125 diff -u -r1.125 thr_private.h --- thread/thr_private.h 13 Mar 2006 00:59:51 -0000 1.125 +++ thread/thr_private.h 28 Mar 2006 21:32:13 -0000 @@ -107,12 +107,16 @@ /* * Kernel fatal error handler macro. */ -#define PANIC(string) _thr_exit(__FILE__,__LINE__,string) +#define PANIC(string) _thr_exit(__FILE__, __LINE__, string) /* Output debug messages like this: */ -#define stdout_debug(args...) _thread_printf(STDOUT_FILENO, ##args) -#define stderr_debug(args...) _thread_printf(STDOUT_FILENO, ##args) +#ifdef STDOUT_FILENO +#define stdout_debug(...) _thread_printf(STDOUT_FILENO, __VA_ARGS__) +#endif +#ifdef STDERR_FILENO +#define stderr_debug(...) _thread_printf(STDERR_FILENO, __VA_ARGS__) +#endif #define DBG_MUTEX 0x0001 #define DBG_SIG 0x0002 @@ -449,7 +453,7 @@ */ struct pthread_cleanup { struct pthread_cleanup *next; - void (*routine) (); + void (*routine) (void *); void *routine_arg; int onstack; }; @@ -486,7 +490,7 @@ #define THR_SIGNAL_THREAD 0x200 /* This is a signal thread */ int flags; void *arg_attr; - void (*cleanup_attr) (); + void (*cleanup_attr) (void *); void *stackaddr_attr; size_t stacksize_attr; size_t guardsize_attr; @@ -1131,7 +1135,7 @@ void _kse_critical_leave(kse_critical_t); int _kse_in_critical(void); void _kse_free(struct pthread *, struct kse *); -void _kse_init(); +void _kse_init(void); struct kse_group *_kseg_alloc(struct pthread *); void _kse_lock_wait(struct lock *, struct lockuser *lu); void _kse_lock_wakeup(struct lock *, struct lockuser *lu); Index: thread/thr_sem.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_sem.c,v retrieving revision 1.18 diff -u -r1.18 thr_sem.c --- thread/thr_sem.c 13 Mar 2006 00:59:51 -0000 1.18 +++ thread/thr_sem.c 28 Mar 2006 21:32:13 -0000 @@ -52,10 +52,6 @@ LT10_COMPAT_PRIVATE(_sem_post); LT10_COMPAT_DEFAULT(sem_post); -extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); -extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *, - struct timespec *); - __weak_reference(_sem_init, sem_init); __weak_reference(_sem_wait, sem_wait); __weak_reference(_sem_timedwait, sem_timedwait); @@ -161,13 +157,13 @@ _thr_cancel_leave(curthread, retval != 0); } else { - pthread_testcancel(); + _pthread_testcancel(); _pthread_mutex_lock(&(*sem)->lock); while ((*sem)->count <= 0) { (*sem)->nwaiters++; THR_CLEANUP_PUSH(curthread, decrease_nwaiters, sem); - pthread_cond_wait(&(*sem)->gtzero, &(*sem)->lock); + _pthread_cond_wait(&(*sem)->gtzero, &(*sem)->lock); THR_CLEANUP_POP(curthread, 0); (*sem)->nwaiters--; } @@ -182,7 +178,7 @@ int _sem_timedwait(sem_t * __restrict sem, - struct timespec * __restrict abs_timeout) + const struct timespec * __restrict abs_timeout) { struct pthread *curthread; int retval; @@ -205,7 +201,7 @@ * segfault on an invalid address doesn't end * up leaving the mutex locked. */ - pthread_testcancel(); + _pthread_testcancel(); timeout_invalid = (abs_timeout->tv_nsec >= 1000000000) || (abs_timeout->tv_nsec < 0); _pthread_mutex_lock(&(*sem)->lock); @@ -217,10 +213,10 @@ return (-1); } (*sem)->nwaiters++; - pthread_cleanup_push(decrease_nwaiters, sem); - pthread_cond_timedwait(&(*sem)->gtzero, + _pthread_cleanup_push(decrease_nwaiters, sem); + _pthread_cond_timedwait(&(*sem)->gtzero, &(*sem)->lock, abs_timeout); - pthread_cleanup_pop(0); + _pthread_cleanup_pop(0); (*sem)->nwaiters--; } if ((*sem)->count == 0) { --=-=-=--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0603281658560.18701-200000>