projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix error "cairo_restore without matching cairo_save" when zero-time point is out...
[rrdtool.git]
/
src
/
rrd_not_thread_safe.c
diff --git
a/src/rrd_not_thread_safe.c
b/src/rrd_not_thread_safe.c
index
2d91d99
..
4558122
100644
(file)
--- a/
src/rrd_not_thread_safe.c
+++ b/
src/rrd_not_thread_safe.c
@@
-1,5
+1,5
@@
/*****************************************************************************
/*****************************************************************************
- * RRDtool 1.2
rc7 Copyright by Tobi Oetiker, 1997-2005
+ * RRDtool 1.2
.99907080300 Copyright by Tobi Oetiker, 1997-2007
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
@@
-14,20
+14,30
@@
#define MAXLEN 4096
#define ERRBUFLEN 256
#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 = {
/* 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)
,
- rrd_error,
+
MAXLEN
,
+
ERRBUFLEN
,
+ rrd_error,
rrd_liberror
};
rrd_liberror
};
-#include <stdarg.h>
-struct rrd_context *rrd_get_context() {
+/* #include <stdarg.h> */
+
+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;
}
return &global_ctx;
}
@@
-36,6
+46,8
@@
struct rrd_context *rrd_get_context() {
silently turning misplaced strerror into rrd_strerror, but here
this turns recursive! */
#undef strerror
silently turning misplaced strerror into rrd_strerror, but here
this turns recursive! */
#undef strerror
-const char *rrd_strerror(int err) {
+const char *rrd_strerror(
+ int err)
+{
return strerror(err);
}
return strerror(err);
}