From d31a59806aa8f0e4c6d8ce7857f543ed9814c69a Mon Sep 17 00:00:00 2001 From: Steven Luong Date: Fri, 31 May 2019 07:34:39 -0700 Subject: [PATCH] elog: make elog_string() multi-thread safe elog is supposed to be thread safe. Yet elog_string() is not. To fulfill that promise, let's make elog_string() thread safe to avoid surprises. Change-Id: Iab82faa7cb6719777a66c3ff14775e59a6a68a20 Signed-off-by: Steven Luong --- src/vppinfra/elog.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vppinfra/elog.c b/src/vppinfra/elog.c index 6daed96719c..e28217cd590 100644 --- a/src/vppinfra/elog.c +++ b/src/vppinfra/elog.c @@ -563,6 +563,7 @@ elog_string (elog_main_t * em, char *fmt, ...) u32 offset; va_list va; + elog_lock (em); va_start (va, fmt); offset = vec_len (em->string_table); em->string_table = (char *) va_format ((u8 *) em->string_table, fmt, &va); @@ -571,6 +572,7 @@ elog_string (elog_main_t * em, char *fmt, ...) /* Null terminate string if it is not already. */ if (vec_end (em->string_table)[-1] != 0) vec_add1 (em->string_table, 0); + elog_unlock (em); return offset; } -- 2.16.6