mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-13 09:06:23 +00:00
put shared variables into thread-local storage
This doesn't solve the general design problem of the log.c (eg; some log lines
got lost or scattered into multiple files) but at least prevent multithreaded
code from crashing.
Before this change something like following;
sudo src/tests/lxc-test-concurrent -i 10 -j 20
was crashing nearly all the time due to 3afbcc4600
as we started to
set lxc.loglevel and lxc.logfile with that commit.
Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
e5ab821d6f
commit
dc5406bbbd
@ -41,6 +41,15 @@
|
|||||||
#define LXC_LOG_BUFFER_SIZE 512
|
#define LXC_LOG_BUFFER_SIZE 512
|
||||||
|
|
||||||
int lxc_log_fd = -1;
|
int lxc_log_fd = -1;
|
||||||
|
#ifdef HAVE_TLS
|
||||||
|
static __thread char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc";
|
||||||
|
static __thread char *log_fname = NULL;
|
||||||
|
/* command line values for logfile or logpriority should always override
|
||||||
|
* values from the configuration file or defaults
|
||||||
|
*/
|
||||||
|
static __thread int lxc_logfile_specified = 0;
|
||||||
|
static __thread int lxc_loglevel_specified = 0;
|
||||||
|
#else
|
||||||
static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc";
|
static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc";
|
||||||
static char *log_fname = NULL;
|
static char *log_fname = NULL;
|
||||||
/* command line values for logfile or logpriority should always override
|
/* command line values for logfile or logpriority should always override
|
||||||
@ -48,6 +57,7 @@ static char *log_fname = NULL;
|
|||||||
*/
|
*/
|
||||||
static int lxc_logfile_specified = 0;
|
static int lxc_logfile_specified = 0;
|
||||||
static int lxc_loglevel_specified = 0;
|
static int lxc_loglevel_specified = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
lxc_log_define(lxc_log, lxc);
|
lxc_log_define(lxc_log, lxc);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user