*/
static inline int ipc_sem_get_status(struct ipc_status *st) {
- static int error_shown = 0;
struct seminfo seminfo;
union semun arg;
if(unlikely(semctl (0, 0, SEM_INFO, arg) < 0)) {
/* kernel not configured for semaphores */
+ static int error_shown = 0;
if(unlikely(!error_shown)) {
error("IPC: kernel is not configured for semaphores");
error_shown = 1;
return 0;
}
-int do_ipc(int update_every, unsigned long long dt) {
+int do_ipc(int update_every, usec_t dt) {
(void)dt;
static int initialized = 0, read_limits_next = 0;
static RRDSET *semaphores = NULL, *arrays = NULL;
if(unlikely(!initialized)) {
+ initialized = 1;
+
// make sure it works
if(ipc_sem_get_limits(&limits) == -1) {
error("unable to fetch semaphore limits");