X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ferror.cpp;h=26d69f48b2f9130e15ba13e9fb54764067e9cfb0;hb=69e98ad60c01ddfbfa6eb843960f77804173dd0f;hp=ab09053ccfb1465179139187069e73954a0b6f97;hpb=28ab034a2c3582d07d3423d2d746731f87d3969f;p=lttng-tools.git diff --git a/src/common/error.cpp b/src/common/error.cpp index ab09053cc..26d69f48b 100644 --- a/src/common/error.cpp +++ b/src/common/error.cpp @@ -16,21 +16,25 @@ #include #include +#include #include #include #include +namespace { /* * lttng_opt_abort_on_error: unset: -1, disabled: 0, enabled: 1. * Controlled by the LTTNG_ABORT_ON_ERROR environment variable. */ -static int lttng_opt_abort_on_error = -1; +int lttng_opt_abort_on_error = -1; /* TLS variable that contains the time of one single log entry. */ -DEFINE_URCU_TLS(struct log_time, error_log_time); -DEFINE_URCU_TLS(const char *, logger_thread_name); +thread_local struct log_time error_log_time; +} /* namespace */ -const char *log_add_time(void) +thread_local const char *logger_thread_name; + +const char *log_add_time() { int ret; struct tm tm, *res; @@ -50,8 +54,8 @@ const char *log_add_time(void) } /* Format time in the TLS variable. */ - ret = snprintf(URCU_TLS(error_log_time).str, - sizeof(URCU_TLS(error_log_time).str), + ret = snprintf(error_log_time.str, + sizeof(error_log_time.str), "%02d:%02d:%02d.%09ld", tm.tm_hour, tm.tm_min, @@ -62,7 +66,7 @@ const char *log_add_time(void) } errno = errsv; - return URCU_TLS(error_log_time).str; + return error_log_time.str; error: /* Return an empty string on error so logging is not affected. */ @@ -75,7 +79,7 @@ void logger_set_thread_name(const char *name, bool set_pthread_name) int ret; LTTNG_ASSERT(name); - URCU_TLS(logger_thread_name) = name; + logger_thread_name = name; if (set_pthread_name) { ret = lttng_thread_setname(name); @@ -449,3 +453,12 @@ void lttng_abort_on_error(void) abort(); } } + +[[noreturn]] void +lttng::logging::details::die_formatting_exception(const char *format, + const std::exception& formatting_exception) +{ + std::cerr << "Error occurred while formatting logging message: msg=`" << format + << "`: " << formatting_exception.what(); + abort(); +}