Catalli's threaded switch
[sliver-openvswitch.git] / vswitchd / bridge.c
index 598b001..3e4458a 100644 (file)
@@ -1260,6 +1260,7 @@ bridge_create(const struct ovsrec_bridge *br_cfg)
 {
     struct bridge *br;
     int error;
+    static int first = 1;
 
     assert(!bridge_lookup(br_cfg->name));
     br = xzalloc(sizeof *br);
@@ -1299,6 +1300,15 @@ bridge_create(const struct ovsrec_bridge *br_cfg)
 
     VLOG_INFO("created bridge %s on %s", br->name, dpif_name(br->dpif));
 
+#ifdef THREADED
+    /* The first time a bridge is created, we launch the datapath thread */
+    if (first) {
+        fprintf(stderr, "THREADED version running!\n");
+        dp_start();
+        first = 0;
+    }
+#endif
+
     return br;
 }