]> arthur.barton.de Git - netdata.git/blobdiff - src/rrddim.c
proxies disconnect and reconnect to follow the receiving side
[netdata.git] / src / rrddim.c
index 80a21e08088cca86864ef135a7e8ebe2e945e75d..287248a7dc025dc1eab85a4bb7a3afd4da4cb7e9 100644 (file)
@@ -71,7 +71,7 @@ RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_numbe
     rrdset_strncpyz_name(filename, id, FILENAME_MAX);
     snprintfz(fullfilename, FILENAME_MAX, "%s/%s.db", st->cache_dir, filename);
 
-    if(st->rrd_memory_mode != RRD_MEMORY_MODE_RAM) {
+    if(st->rrd_memory_mode == RRD_MEMORY_MODE_SAVE || st->rrd_memory_mode == RRD_MEMORY_MODE_MAP) {
         rd = (RRDDIM *)mymmap(fullfilename, size, ((st->rrd_memory_mode == RRD_MEMORY_MODE_MAP) ? MAP_SHARED : MAP_PRIVATE), 1);
         if(likely(rd)) {
             // we have a file mapped for rd
@@ -80,7 +80,6 @@ RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_numbe
             rd->id = NULL;
             rd->name = NULL;
             rd->cache_filename = NULL;
-            rd->flags = 0x00000000;
             rd->variables = NULL;
             rd->next = NULL;
             rd->rrdset = NULL;
@@ -133,7 +132,7 @@ RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_numbe
     if(unlikely(!rd)) {
         // if we didn't manage to get a mmap'd dimension, just create one
         rd = callocz(1, size);
-        rd->rrd_memory_mode = RRD_MEMORY_MODE_RAM;
+        rd->rrd_memory_mode = (st->rrd_memory_mode == RRD_MEMORY_MODE_NONE) ? RRD_MEMORY_MODE_NONE : RRD_MEMORY_MODE_RAM;
     }
 
     rd->memsize = size;
@@ -164,9 +163,7 @@ RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_numbe
 
     // prevent incremental calculation spikes
     rd->counter = 0;
-
-    rrddim_flag_clear(rd, RRDDIM_FLAG_UPDATED);
-    rrddim_flag_clear(rd, RRDDIM_FLAG_EXPOSED);
+    rd->flags = 0x00000000;
 
     rd->calculated_value = 0;
     rd->last_calculated_value = 0;
@@ -246,6 +243,7 @@ void rrddim_free(RRDSET *st, RRDDIM *rd)
             munmap(rd, rd->memsize);
             break;
 
+        case RRD_MEMORY_MODE_NONE:
         case RRD_MEMORY_MODE_RAM:
             debug(D_RRD_CALLS, "Removing dimension '%s'.", rd->name);
             freez((void *)rd->id);