[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/8] mach-defpager: add and use synchronized_printf for dprintf
From: |
Justus Winter |
Subject: |
[PATCH 3/8] mach-defpager: add and use synchronized_printf for dprintf |
Date: |
Wed, 12 Mar 2014 15:55:49 +0100 |
* mach-defpager/default_pager.c (synchronized_printf): New function.
(printf_lock): Move to synchronized_printf.
(dprintf): Use synchronized_printf.
(ddprintf): Likewise.
---
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
- [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 <=
- [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