[ovs-dev] [PATCH 08/18] lib/jsonrpc, lib/ofp-msgs, lib/ofp-parse: Use atomic_count.

Jarno Rajahalme jrajahalme at nicira.com
Fri Aug 22 20:58:19 UTC 2014


Trivial ID counters do not synchronize anything, therefore can use
atomic_count.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
---
 lib/jsonrpc.c   |    4 ++--
 lib/ofp-msgs.c  |    6 ++----
 lib/ofp-parse.c |    4 ++--
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c
index 842d117..0841ad8 100644
--- a/lib/jsonrpc.c
+++ b/lib/jsonrpc.c
@@ -516,10 +516,10 @@ jsonrpc_create(enum jsonrpc_msg_type type, const char *method,
 static struct json *
 jsonrpc_create_id(void)
 {
-    static atomic_uint next_id = ATOMIC_VAR_INIT(0);
+    static atomic_count next_id = ATOMIC_COUNT_INIT(0);
     unsigned int id;
 
-    atomic_add(&next_id, 1, &id);
+    id = atomic_count_inc(&next_id);
     return json_integer_create(id);
 }
 
diff --git a/lib/ofp-msgs.c b/lib/ofp-msgs.c
index 3e93466..904aba6 100644
--- a/lib/ofp-msgs.c
+++ b/lib/ofp-msgs.c
@@ -110,11 +110,9 @@ static enum ofperr ofpraw_from_ofphdrs(enum ofpraw *, const struct ofphdrs *);
 static ovs_be32
 alloc_xid(void)
 {
-    static atomic_uint32_t next_xid = ATOMIC_VAR_INIT(1);
-    uint32_t xid;
+    static atomic_count next_xid = ATOMIC_COUNT_INIT(1);
 
-    atomic_add(&next_xid, 1, &xid);
-    return htonl(xid);
+    return htonl(atomic_count_inc(&next_xid));
 }
 
 static uint32_t
diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c
index 9bafa8d..eed5a08 100644
--- a/lib/ofp-parse.c
+++ b/lib/ofp-parse.c
@@ -730,11 +730,11 @@ parse_flow_monitor_request__(struct ofputil_flow_monitor_request *fmr,
                              const char *str_, char *string,
                              enum ofputil_protocol *usable_protocols)
 {
-    static atomic_uint32_t id = ATOMIC_VAR_INIT(0);
+    static atomic_count id = ATOMIC_COUNT_INIT(0);
     char *save_ptr = NULL;
     char *name;
 
-    atomic_add(&id, 1, &fmr->id);
+    fmr->id = atomic_count_inc(&id);
 
     fmr->flags = (NXFMF_INITIAL | NXFMF_ADD | NXFMF_DELETE | NXFMF_MODIFY
                   | NXFMF_OWN | NXFMF_ACTIONS);
-- 
1.7.10.4




More information about the dev mailing list