]> arthur.barton.de Git - netdata.git/blobdiff - src/plugin_proc.c
added pthread_exit in hope it will solve the crash at exit
[netdata.git] / src / plugin_proc.c
index 656ac1738fb928feb9b2cde2f77436bad540061c..ac96cb50b27bc4dffd8ee60bd63f3a0eeca64e2b 100755 (executable)
@@ -13,6 +13,7 @@
 #include "log.h"
 #include "rrd.h"
 #include "plugin_proc.h"
+#include "main.h"
 
 void *proc_main(void *ptr)
 {
@@ -33,8 +34,8 @@ void *proc_main(void *ptr)
        last.tv_sec -= rrd_update_every;
 
        // disable (by default) various interface that are not needed
-       config_get_boolean("plugin:proc:/proc/net/dev", "interface lo", 0);
-       config_get_boolean("plugin:proc:/proc/net/dev", "interface fireqos_monitor", 0);
+       config_get_boolean("plugin:proc:/proc/net/dev:lo", "enabled", 0);
+       config_get_boolean("plugin:proc:/proc/net/dev:fireqos_monitor", "enabled", 0);
 
        // when ZERO, attempt to do it
        int vdo_proc_net_dev                    = !config_get_boolean("plugin:proc", "/proc/net/dev", 1);
@@ -59,6 +60,7 @@ void *proc_main(void *ptr)
 
        unsigned long long usec = 0, susec = 0;
        for(;1;) {
+               if(unlikely(netdata_exit)) break;
 
                // BEGIN -- the job to be done
 
@@ -129,6 +131,8 @@ void *proc_main(void *ptr)
 
                // END -- the job is done
 
+               if(unlikely(netdata_exit)) break;
+
                // find the time to sleep in order to wait exactly update_every seconds
                gettimeofday(&now, NULL);
                usec = usecdiff(&now, &last) - susec;
@@ -219,5 +223,6 @@ void *proc_main(void *ptr)
                bcopy(&now, &last, sizeof(struct timeval));
        }
 
+       pthread_exit(NULL);
        return NULL;
 }