Fix old-style-declaration warnings
[babeltrace.git] / logging / log.c
index 78a0361de7c5e89d3586028fbd6e49a9a03999cf..8d166a3093054680b21317d007dcf1cf67a1a3c4 100644 (file)
@@ -7,6 +7,7 @@
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/common-internal.h>
 #include <pthread.h>
+#include <assert.h>
 
 #ifdef __CYGWIN__
 extern unsigned long pthread_getsequence_np(pthread_t *);
@@ -128,11 +129,10 @@ extern unsigned long pthread_getsequence_np(pthread_t *);
 #else
        #define BT_LOG_OPTIMIZE_SIZE 0
 #endif
-/* Size of the log line buffer. The buffer is allocated on stack. It limits
- * maximum length of a log line.
+/* Size of the log line buffer. The buffer is a globally allocated per thread.
  */
 #ifndef BT_LOG_BUF_SZ
-       #define BT_LOG_BUF_SZ 512
+       #define BT_LOG_BUF_SZ (4 * 4096)
 #endif
 /* Default number of bytes in one line of memory output. For large values
  * BT_LOG_BUF_SZ also must be increased.
@@ -289,7 +289,7 @@ extern unsigned long pthread_getsequence_np(pthread_t *);
                #undef __STRICT_ANSI__
        #endif
 #endif
-#include <assert.h>
+#include <babeltrace/assert-internal.h>
 #include <ctype.h>
 #include <string.h>
 #include <time.h>
@@ -537,11 +537,10 @@ static void buffer_callback(bt_log_message *msg, char *buf);
 STATIC_ASSERT(eol_fits_eol_sz, sizeof(BT_LOG_EOL) <= BT_LOG_EOL_SZ);
 STATIC_ASSERT(eol_sz_greater_than_zero, 0 < BT_LOG_EOL_SZ);
 STATIC_ASSERT(eol_sz_less_than_buf_sz, BT_LOG_EOL_SZ < BT_LOG_BUF_SZ);
-#if !defined(_WIN32) && !defined(_WIN64)
-       STATIC_ASSERT(buf_sz_less_than_pipe_buf, BT_LOG_BUF_SZ <= PIPE_BUF);
-#endif
 static const char c_hex[] = "0123456789abcdef";
 
+static __thread char logging_buf[4 * 4096];
+
 static INSTRUMENTED_CONST unsigned g_buf_sz = BT_LOG_BUF_SZ - BT_LOG_EOL_SZ;
 static INSTRUMENTED_CONST time_cb g_time_cb = time_callback;
 static INSTRUMENTED_CONST pid_cb g_pid_cb = pid_callback;
@@ -1263,7 +1262,7 @@ static void _bt_log_write_imp(
                const int lvl, const char *const tag, const char *const fmt, va_list va)
 {
        bt_log_message msg;
-       char buf[BT_LOG_BUF_SZ];
+       char *buf = logging_buf;
        const unsigned mask = log->output->mask;
        msg.lvl = lvl;
        msg.tag = tag;
This page took 0.023589 seconds and 4 git commands to generate.