X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fdaemon%2Fplugin.c;h=8b84e6a7920583c48ea3f6570dc9a900b9ec79d6;hb=cc893903f8453dc96a797b319bdd4e294052de6f;hp=50ab67573c7504148877f09955c2cf8c8ff03c5d;hpb=d54dc98aff7fe748d83fc91b0fed685db990e3de;p=collectd.git diff --git a/src/daemon/plugin.c b/src/daemon/plugin.c index 50ab6757..8b84e6a7 100644 --- a/src/daemon/plugin.c +++ b/src/daemon/plugin.c @@ -108,7 +108,7 @@ static c_avl_tree_t *data_sets; static char *plugindir = NULL; #ifndef DEFAULT_MAX_READ_INTERVAL -# define DEFAULT_MAX_READ_INTERVAL TIME_T_TO_CDTIME_T (86400) +# define DEFAULT_MAX_READ_INTERVAL TIME_T_TO_CDTIME_T_STATIC (86400) #endif static c_heap_t *read_heap = NULL; static llist_t *read_list; @@ -360,7 +360,7 @@ static void log_list_callbacks (llist_t **list, /* {{{ */ } /* }}} void log_list_callbacks */ static int create_register_callback (llist_t **list, /* {{{ */ - const char *name, void *callback, user_data_t *ud) + const char *name, void *callback, user_data_t const *ud) { callback_func_t *cf; @@ -522,12 +522,8 @@ static void *plugin_read_thread (void __attribute__((unused)) *args) && (cdtime () < rf->rf_next_read) && rc == 0) { - struct timespec ts = { 0 }; - - CDTIME_T_TO_TIMESPEC (rf->rf_next_read, &ts); - rc = pthread_cond_timedwait (&read_cond, &read_lock, - &ts); + &CDTIME_T_TO_TIMESPEC (rf->rf_next_read)); } /* Must hold `read_lock' when accessing `rf->rf_type'. */ @@ -1264,7 +1260,7 @@ int plugin_register_read (const char *name, int plugin_register_complex_read (const char *group, const char *name, plugin_read_cb callback, cdtime_t interval, - user_data_t *user_data) + user_data_t const *user_data) { read_func_t *rf; int status; @@ -1308,7 +1304,7 @@ int plugin_register_complex_read (const char *group, const char *name, } /* int plugin_register_complex_read */ int plugin_register_write (const char *name, - plugin_write_cb callback, user_data_t *ud) + plugin_write_cb callback, user_data_t const *ud) { return (create_register_callback (&list_write, name, (void *) callback, ud)); @@ -1355,7 +1351,7 @@ static char *plugin_flush_callback_name (const char *name) } /* static char *plugin_flush_callback_name */ int plugin_register_flush (const char *name, - plugin_flush_cb callback, user_data_t *ud) + plugin_flush_cb callback, user_data_t const *ud) { int status; plugin_ctx_t ctx = plugin_get_ctx (); @@ -1392,15 +1388,15 @@ int plugin_register_flush (const char *name, } cb->timeout = ctx.flush_timeout; - ud->data = cb; - ud->free_func = plugin_flush_timeout_callback_free; - status = plugin_register_complex_read ( /* group = */ "flush", /* name = */ flush_name, /* callback = */ plugin_flush_timeout_callback, /* interval = */ ctx.flush_interval, - /* user data = */ ud); + /* user data = */ &(user_data_t) { + .data = cb, + .free_func = plugin_flush_timeout_callback_free, + }); sfree (flush_name); if (status != 0) @@ -1415,7 +1411,7 @@ int plugin_register_flush (const char *name, } /* int plugin_register_flush */ int plugin_register_missing (const char *name, - plugin_missing_cb callback, user_data_t *ud) + plugin_missing_cb callback, user_data_t const *ud) { return (create_register_callback (&list_missing, name, (void *) callback, ud)); @@ -1486,14 +1482,14 @@ int plugin_register_data_set (const data_set_t *ds) } /* int plugin_register_data_set */ int plugin_register_log (const char *name, - plugin_log_cb callback, user_data_t *ud) + plugin_log_cb callback, user_data_t const *ud) { return (create_register_callback (&list_log, name, (void *) callback, ud)); } /* int plugin_register_log */ int plugin_register_notification (const char *name, - plugin_notification_cb callback, user_data_t *ud) + plugin_notification_cb callback, user_data_t const *ud) { return (create_register_callback (&list_notification, name, (void *) callback, ud));