Justus Winter, le Wed 12 Mar 2014 15:55:49 +0100, a écrit : > * mach-defpager/default_pager.c (synchronized_printf): New function. > (printf_lock): Move to synchronized_printf. > (dprintf): Use synchronized_printf. > (ddprintf): Likewise.
Ack. > --- > mach-defpager/default_pager.c | 29 ++++++++++++++++++----------- > 1 file changed, 18 insertions(+), 11 deletions(-) > > diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c > index df0200d..ebbff60 100644 > --- a/mach-defpager/default_pager.c > +++ b/mach-defpager/default_pager.c > @@ -51,6 +51,7 @@ > #include <errno.h> > #include <stdio.h> > #include <string.h> > +#include <stdarg.h> > > #include <file_io.h> > > @@ -63,24 +64,30 @@ > > static char my_name[] = "(default pager):"; > > -static pthread_mutex_t printf_lock = PTHREAD_MUTEX_INITIALIZER; > +static void __attribute__ ((format (printf, 1, 2), unused)) > +synchronized_printf (const char *fmt, ...) > +{ > + static pthread_mutex_t printf_lock = PTHREAD_MUTEX_INITIALIZER; > + va_list ap; > + > + va_start (ap, fmt); > + pthread_mutex_lock (&printf_lock); > + > + vprintf (fmt, ap); > + fflush (stdout); > + > + pthread_mutex_unlock (&printf_lock); > + va_end (ap); > +} > > #if 0 > -#define dprintf(f, x...) \ > - ({ pthread_mutex_lock (&printf_lock); \ > - printf (f , ##x); \ > - fflush (stdout); \ > - pthread_mutex_unlock (&printf_lock); }) > +#define dprintf(f, x...) synchronized_printf (f, ##x) > #else > #define dprintf(f, x...) > #endif > > #if 0 > -#define ddprintf(f, x...) \ > - ({ pthread_mutex_lock (&printf_lock); \ > - printf (f , ##x); \ > - fflush (stdout); \ > - pthread_mutex_unlock (&printf_lock); }) > +#define ddprintf(f, x...) synchronized_printf (f, ##x) > #else > #define ddprintf(f, x...) > #endif > -- > 1.9.0 > -- Samuel War doesn't prove who's right, just who's left.