vlog: Make vlog_should_drop() thread-safe.
[sliver-openvswitch.git] / lib / vlog.h
index c7ab206..b2e1d49 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdbool.h>
 #include <time.h>
 #include "compiler.h"
+#include "ovs-thread.h"
 #include "sat-math.h"
 #include "token-bucket.h"
 #include "util.h"
@@ -94,6 +95,7 @@ struct vlog_rate_limit {
     time_t first_dropped;       /* Time first message was dropped. */
     time_t last_dropped;        /* Time of most recent message drop. */
     unsigned int n_dropped;     /* Number of messages dropped. */
+    pthread_mutex_t mutex;      /* Mutual exclusion for rate limit. */
 };
 
 /* Number of tokens to emit a message.  We add 'rate' tokens per millisecond,
@@ -108,6 +110,7 @@ struct vlog_rate_limit {
             0,                              /* first_dropped */         \
             0,                              /* last_dropped */          \
             0,                              /* n_dropped */             \
+            PTHREAD_ADAPTIVE_MUTEX_INITIALIZER /* mutex */              \
         }
 
 /* Configuring how each module logs messages. */