summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 887bc2a)
raw | patch | inline | side by side (parent: 887bc2a)
author | Sebastian Harl <sh@tokkee.org> | |
Fri, 17 Jun 2011 08:25:48 +0000 (10:25 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Fri, 17 Jun 2011 08:25:48 +0000 (10:25 +0200) |
Else, the write callback would remove itself on the first call. This
operation, however, is not thread-safe as access to the write list is not
synchronized. Thus, removing the callback at that point leads to random
segfaults.
operation, however, is not thread-safe as access to the write list is not
synchronized. Thus, removing the callback at that point leads to random
segfaults.
src/rrdcached.c | patch | blob | history |
diff --git a/src/rrdcached.c b/src/rrdcached.c
index a392715616ff7fb501cc8294db0461a9412bb62a..f53ccad7ab5bac6f4a121d35459bfa461f6e31d7 100644 (file)
--- a/src/rrdcached.c
+++ b/src/rrdcached.c
/* consolidation_functions_num = */ 0
};
+/*
+ * Prototypes.
+ */
+static int rc_write (const data_set_t *ds, const value_list_t *vl,
+ user_data_t __attribute__((unused)) *user_data);
+static int rc_flush (__attribute__((unused)) cdtime_t timeout,
+ const char *identifier, __attribute__((unused)) user_data_t *ud);
+
static int value_list_to_string (char *buffer, int buffer_len,
const data_set_t *ds, const value_list_t *vl)
{
continue;
}
}
+
+ if (daemon_address != NULL) {
+ plugin_register_write ("rrdcached", rc_write, /* user_data = */ NULL);
+ plugin_register_flush ("rrdcached", rc_flush, /* user_data = */ NULL);
+ }
return (0);
} /* int rc_config */
{
plugin_register_complex_config ("rrdcached", rc_config);
plugin_register_init ("rrdcached", rc_init);
- plugin_register_write ("rrdcached", rc_write, /* user_data = */ NULL);
- plugin_register_flush ("rrdcached", rc_flush, /* user_data = */ NULL);
plugin_register_shutdown ("rrdcached", rc_shutdown);
} /* void module_register */