X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_not_thread_safe.c;h=4ce16f3f6930fc42634326543f5b2c4d106dd8b8;hb=3882bb0c2d15f97298aaa7602d6353a1888f5547;hp=5a1ec2eb024511c90c031563f664635021a056f3;hpb=96db36a7a6ff75d2fc1353e45434a7f6b1db801b;p=rrdtool.git diff --git a/src/rrd_not_thread_safe.c b/src/rrd_not_thread_safe.c index 5a1ec2e..4ce16f3 100644 --- a/src/rrd_not_thread_safe.c +++ b/src/rrd_not_thread_safe.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.2.7 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.2.16 Copyright by Tobi Oetiker, 1997-2006 * This file: Copyright 2003 Peter Stamfest * & Tobias Oetiker * Distributed under the GPL @@ -14,20 +14,26 @@ #define MAXLEN 4096 #define ERRBUFLEN 256 -static char rrd_error[MAXLEN] = "\0"; -static char rrd_liberror[ERRBUFLEN] = "\0"; +static char rrd_error[MAXLEN+10]; +static char rrd_liberror[ERRBUFLEN+10]; +static int rrd_context_init = 0; /* The global context is very useful in the transition period to even more thread-safe stuff, it can be used whereever we need a context and do not need to worry about concurrency. */ static struct rrd_context global_ctx = { - sizeof(rrd_error), - sizeof(rrd_liberror), + MAXLEN, + ERRBUFLEN, rrd_error, rrd_liberror }; -#include +/* #include */ -struct rrd_context *rrd_get_context() { +struct rrd_context *rrd_get_context(void) { + if (! rrd_context_init ){ + rrd_context_init = 1; + global_ctx.rrd_error[0]='\0'; + global_ctx.lib_errstr[0]='\0'; + } return &global_ctx; }