[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/8] mach-defpager: add and use synchronized_printf for dprin
From: |
Samuel Thibault |
Subject: |
Re: [PATCH 3/8] mach-defpager: add and use synchronized_printf for dprintf |
Date: |
Thu, 13 Mar 2014 00:03:17 +0100 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
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.
- [PATCH 1/8] mach-defpager: remove comments around form feeds, Justus Winter, 2014/03/12
- [PATCH 3/8] mach-defpager: add and use synchronized_printf for dprintf, Justus Winter, 2014/03/12
- Re: [PATCH 3/8] mach-defpager: add and use synchronized_printf for dprintf,
Samuel Thibault <=
- [PATCH 4/8] mach-defpager: fix error handling in S_default_pager_object_set_size, Justus Winter, 2014/03/12
- [PATCH 5/8] mach-defpager: fix warning about uninitialized variable, Justus Winter, 2014/03/12
- [PATCH 2/8] mach-defpager: fix warnings about unused variables, Justus Winter, 2014/03/12
- [PATCH 8/8] mach-defpager: silently ignore requests to page to active partition, Justus Winter, 2014/03/12
- [PATCH 6/8] mach-defpager: fix warnings about uninitialized variables, Justus Winter, 2014/03/12