diff --git a/src/core/plugin.c b/src/core/plugin.c
index d1f7541a3b61824b66eecb27c6f2d29fcc3c233b..eb9797fb40f8ba694f687acec082792877d115fd 100644 (file)
--- a/src/core/plugin.c
+++ b/src/core/plugin.c
sdb_log(SDB_LOG_ERR, "core: Failed to sleep "
"in collector main loop: %s",
sdb_strerror(errno, errbuf, sizeof(errbuf)));
+ sdb_llist_insert_sorted(collector_list, obj,
+ plugin_cmp_next_update);
+ sdb_object_deref(obj);
return -1;
}
errno = 0;
}
- if (! loop->do_loop)
+ if (! loop->do_loop) {
+ /* put back; don't worry about errors */
+ sdb_llist_insert_sorted(collector_list, obj,
+ plugin_cmp_next_update);
+ sdb_object_deref(obj);
return 0;
+ }
}
old_ctx = ctx_set(SDB_PLUGIN_CCB(obj)->ccb_ctx);