Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 lib/netdev-dummy.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
index a940df8..82473a1 100644
--- a/lib/netdev-dummy.c
+++ b/lib/netdev-dummy.c
@@ -241,8 +241,15 @@ static int
 netdev_dummy_create(const struct netdev_class *class, const char *name,
                     struct netdev **netdevp)
 {
-    static unsigned int n = 0xaa550000;
+    static unsigned int next_n = 0xaa550000;
+    static pthread_mutex_t mutex = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER;
+
     struct netdev_dummy *netdev;
+    unsigned int n;
+
+    xpthread_mutex_lock(&mutex);
+    n = next_n++;
+    xpthread_mutex_unlock(&mutex);
 
     netdev = xzalloc(sizeof *netdev);
     netdev_init(&netdev->up, name, class);
@@ -265,8 +272,6 @@ netdev_dummy_create(const struct netdev_class *class, const 
char *name,
 
     shash_add(&dummy_netdevs, name, netdev);
 
-    n++;
-
     *netdevp = &netdev->up;
 
     return 0;
-- 
1.7.2.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to