ovs-vswitchd: Release most memory on normal exit.
authorBen Pfaff <blp@nicira.com>
Mon, 13 Dec 2010 21:08:31 +0000 (13:08 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 13 Dec 2010 22:29:13 +0000 (14:29 -0800)
This makes "valgrind --leak-check=full --show-reachable=yes" output much
easier to read.

vswitchd/bridge.c
vswitchd/bridge.h
vswitchd/ovs-vswitchd.c

index 18e4ef2401ca8b397dc8fad7dfc37dbbe7ef0072..f739505e3ec06c3b2be31e560511805754f10f53 100644 (file)
@@ -317,6 +317,17 @@ bridge_init(const char *remote)
     bond_init();
 }
 
+void
+bridge_exit(void)
+{
+    struct bridge *br, *next_br;
+
+    LIST_FOR_EACH_SAFE (br, next_br, node, &all_bridges) {
+        bridge_destroy(br);
+    }
+    ovsdb_idl_destroy(idl);
+}
+
 /* Performs configuration that is only necessary once at ovs-vswitchd startup,
  * but for which the ovs-vswitchd configuration 'cfg' is required. */
 static void
index 42ba4e5cc2830cc4dbfde920664f2c5133ce029a..32b581e2d63c2becd652366e614e1962a069d983 100644 (file)
 #ifndef VSWITCHD_BRIDGE_H
 #define VSWITCHD_BRIDGE_H 1
 
-#include <stdbool.h>
-#include <stdint.h>
-
-struct svec;
-
 void bridge_init(const char *remote);
+void bridge_exit(void);
+
 void bridge_run(void);
 void bridge_wait(void);
 
index 93f0371c60b239c5d5892eae635ac58cda0ed059..cd30c96d309762f96b4afb9c90bff079316181a7 100644 (file)
@@ -107,6 +107,8 @@ main(int argc, char *argv[])
         }
         poll_block();
     }
+    bridge_exit();
+    unixctl_server_destroy(unixctl);
 
     return 0;
 }