summaryrefslogtreecommitdiff
path: root/CodingStyle
diff options
context:
space:
mode:
authorAlex Wang <alexw@nicira.com>2013-08-08 15:14:21 -0700
committerBen Pfaff <blp@nicira.com>2013-08-09 13:48:11 -0700
commitbdd2719efb7483ea237698d8ca7c1459da01f368 (patch)
tree1d1d40d35be9db33d8e334aaf981d020541bd0e3 /CodingStyle
parent344e21d47ecfe342fc5c3c8f32020d7a43089301 (diff)
downloadopenvswitch-bdd2719efb7483ea237698d8ca7c1459da01f368.tar.gz
CodingStyle: Add guide about using thread safety types and annotations.
This commit adds guide about using thread safety types and annotations to CodingStyle file. Signed-off-by: Alex Wang <alexw@nicira.com> [blp@nicira.com edited the advice slightly] Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'CodingStyle')
-rw-r--r--CodingStyle15
1 files changed, 15 insertions, 0 deletions
diff --git a/CodingStyle b/CodingStyle
index 55b37a1cb..2f24ee396 100644
--- a/CodingStyle
+++ b/CodingStyle
@@ -298,6 +298,21 @@ the name of each enum. For example:
};
+THREAD SAFETY ANNOTATIONS
+
+ Use the macros in lib/compiler.h to annotate locking requirements.
+For example:
+
+ static struct ovs_mutex mutex = OVS_MUTEX_INITIALIZER;
+ static struct ovs_rwlock rwlock = OVS_RWLOCK_INITIALIZER;
+
+ void function_require_plain_mutex(void) OVS_REQUIRES(mutex);
+ void function_require_rwlock(void) OVS_REQ_RDLOCK(rwlock);
+
+ Pass lock objects, not their addresses, to the annotation macros.
+(Thus we have OVS_REQUIRES(mutex) above, not OVS_REQUIRES(&mutex).)
+
+
SOURCE FILES
Each source file should state its license in a comment at the very