clang: Add annotations for thread safety check.
[sliver-openvswitch.git] / lib / ofp-parse.c
index 4b8036d..5cb39f5 100644 (file)
@@ -1520,15 +1520,11 @@ static char * WARN_UNUSED_RESULT
 parse_flow_monitor_request__(struct ofputil_flow_monitor_request *fmr,
                              const char *str_, char *string)
 {
-    static pthread_mutex_t mutex = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER;
-    static uint32_t id;
-
+    static atomic_uint32_t id = ATOMIC_VAR_INIT(0);
     char *save_ptr = NULL;
     char *name;
 
-    xpthread_mutex_lock(&mutex);
-    fmr->id = id++;
-    xpthread_mutex_unlock(&mutex);
+    atomic_add(&id, 1, &fmr->id);
 
     fmr->flags = (NXFMF_INITIAL | NXFMF_ADD | NXFMF_DELETE | NXFMF_MODIFY
                   | NXFMF_OWN | NXFMF_ACTIONS);