-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 = {
/* 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 = {
-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';
+ }